MP4をテキストに変換する方法(直接アップロードOK、音声抽出は不要)
文字起こし動画MP4

MP4をテキストに変換する方法(直接アップロードOK、音声抽出は不要)

BMMamane B. MoussaMay 26, 2026Updated July 2, 20262 min read

Summarize this article with:

結論

文字起こしの前にMP4から音声を抽出する必要はありません。 本格的な文字起こしツールであれば、ファイルを直接アップロードするだけで、サーバー側がffmpegを使って自動的に音声を取り出します。事前に確認すべきことは2つだけです。ファイルに音声トラックが実際に存在するか、そして複数ある場合、どのトラックが欲しいのか。

MP4動画のアップロード:音声トラックは自動的に抽出されます
MP4動画のアップロード:音声トラックは自動的に抽出されます

MP4の中身は実際にはどうなっているのか

MP4はコーデックではなくコンテナ(容器)です。先週録画した動画は、映像がH.264またはHEVC(H.265)、音声がAACである可能性が高いでしょう。コンテナは、タイミング情報のメタデータ、字幕トラック、チャプターマーカーと一緒にこれらをまとめて格納しているだけです。

この違いが文字起こしにおいて重要なのは、音声認識モデルが見るのは映像ではなく音声ストリームだけだからです。 ツールはコンテナをデマックス(分離)し、音声を取り出し、16 kHzモノラル(Whisperクラスのモデルが想定するフォーマット)にリサンプリングしてから推論を実行します。この一連の処理は、内部の動画コーデックが何であっても影響を受けません。

実際に影響するのは次の点です:

  • AAC(最も一般的):どの文字起こしツールでも問題なく抽出できます。
  • AC-3 / Dolby:放送やBlu-rayからリッピングされたMP4に見られます。対応しているツールもあれば、先にAACへトランスコードする必要があるツールもあります。
  • MP4内のOpus:やや少数派ですが、Web録画で使われることが増えています。最新のツールでは十分にサポートされていますが、古いパイプラインではつまずくことがあります。

動画コーデックがH.264かH.265かは、文字起こし精度には関係ありません。

複数音声トラック問題

これはMP4文字起こしで最も多い、気づかないうちに起こる失敗です。 MP4ファイルは仕様上、1つのコンテナに複数の音声ストリームを格納でき、ほとんどの文字起こしツールは何も告知せずにストリームインデックス0をデフォルトとして使用します。

この問題に遭遇する典型例:

  • 吹き替え入りコンテンツ:映画やドキュメンタリーのMP4では、パッケージの仕方によって、トラック0に英語のコメンタリー、トラック1に原語が入っていることがあります(その逆の場合も)。
  • OBSの画面録画:OBSの詳細出力モードでは、ゲーム音声をトラック1に、マイクをトラック2に記録し、両方を同じMP4に埋め込めます。このようなファイルをデフォルト設定で文字起こしすると、処理されるのは1つのミックストラックのみで、それが発話を含むトラックだとは限りません。
  • 多言語カンファレンスの書き出し:ウェビナープラットフォームの中には、通訳トラックをトラック2として埋め込むものがあります。冒頭が英語で、トラック2にフランス語が入っているファイルに自動検出をかけると、めちゃくちゃな結果になります。
  • コメンタリー収録:ポッドキャストの収録環境では、生ミックスと話者ごとのステムを、別々の埋め込みトラックに記録することがあります。

アップロード前に自分が何を扱っているのかを確認するには、ローカルでffprobeを実行します:

ffprobe -i video.mp4 -show_streams -select_streams a -v quiet

これで、すべての音声ストリームのコーデック、言語タグ、チャンネルレイアウトが一覧表示されます。ストリームが2つ以上ある場合は、どれを使いたいかを決めたうえで、アップロード時に指定する(ツールがトラック選択に対応している場合)か、そのストリームだけを先に抽出します:

ffmpeg -i video.mp4 -map 0:a:1 -c copy track2.m4a

(0:a:1 は、使いたいストリームのインデックスに置き換えてください。0から数えます。)

画面録画とカメラ映像:品質特性の違い

どちらもMP4ファイルを生成しますが、文字起こしにおいては挙動がまったく異なります。

カメラ映像(スマートフォン、ミラーレス、ビデオカメラ):音声は物理的な空間で物理マイクによって収音されます。距離が離れるほど品質は落ちます。スマホのマイクから30 cmの距離で撮影したインタビューは、96〜98%の精度で文字起こしされます。一方、会場マイクで10メートル離れた場所から撮影したパネルディスカッションでは85〜90%に落ち、顕著な残響や空調ノイズがある場合はさらに低くなることもあります。

画面録画(OBS、Loom、ScreenFlow、Camtasia、Windows Game Bar、macOSスクリーンショット):音声ソースは通常、話者の口から数センチのところにあるUSBマイクやヘッドセットマイクです。これは文字起こしにとってほぼ理想的な条件です。 SN比が高く、部屋の残響がなく、ビットレートも一定しています(通常128〜320 kbpsのAAC)。課題は音声品質ではなく語彙です。画面録画には、コマンドラインの構文、ライブラリ名、エラーメッセージ、キーボードショートカット、製品名など、音声認識モデルがあまり見たことのない用語が含まれがちです。会話の単語の精度が97%を超えていても、専門用語では時折エラーが出ることを想定しておきましょう。

構造上の違いがもう1つあります。画面録画は、ファイルの再生時間全体を通じて変動のない、単一のモノラルまたはステレオトラックになることが多いということです。カメラ映像はファイルの途中で品質が変わることがあります(話者がマイクから離れる、観客の騒音が急上昇する等)。カメラ映像の場合は、アップロード前にきれいに編集しておく方が、文字起こし後の長い校正作業よりも効果的です。

ファイルサイズと、MP4が大きすぎるときの対処法

ソース解像度 / FPS1分あたりのおおよそのサイズ
iPhone 16(HEVC H.265)4K 30fps約350 MB/分
iPhone 16(HEVC H.265)1080p 30fps約60 MB/分
Zoomクラウド録画1080p(H.264、AAC 128 kbps)約70〜120 MB/分
OBS画面録画1080p 60fps(H.264)約150〜400 MB/分(ビットレート依存)
Androidスマートフォン(H.264)1080p 30fps約100〜200 MB/分
書き出されたウェビナー(圧縮済み)720p H.264約20〜50 MB/分

多くの文字起こしツールは、最大500 MB〜2 GB程度のファイルを受け付けます。1時間のZoom会議(約4.2〜7.2 GB)は、この上限を超えることがあります。

手間の少ない順に、対処法を紹介します:

  1. URL経由で大きなファイルを受け付けるツールにアップロードする。 MP4がURLでアクセス可能な場合(YouTube動画、Loomの共有リンク、Zoomクラウド録画のリンクなど)は、ダウンロード自体を省略できます。ConvertAudioToTextの動画文字起こしツールは、この理由からダイレクトURLを受け付けています。

  2. アップロード前に音声だけを抽出する。 1時間の1080p MP4は4 GBになることもありますが、そこから抽出したAAC音声は約55〜70 MBです。文字起こしの目的では品質は一切失われません。捨てているのは音声ではなく映像信号だからです。ffmpegコマンドは音声ストリームのロスレスコピーです:

    ffmpeg -i recording.mp4 -vn -c:a copy audio.m4a
    
  3. 自然な区切りで分割する。 録音全体にまたがる単語レベルのタイムスタンプが必要な場合、分割後にタイムスタンプを手動でつなぎ直すのは骨が折れます。音声を抽出する方が簡単です。

HEVCの落とし穴

Apple製デバイスは2017年以降、デフォルトでHEVC(H.265)形式で録画しています。HEVCのコンテナも拡張子は.mp4のままなので、ファイル名からは何もわかりません。 現在のほとんどの文字起こしツールは、コンテナをHEVCサポートが堅牢なffmpegに渡すため、HEVCを問題なく処理できます。しかし、一部の旧式ツールやブラウザベースのアップローダーは、送信前にブラウザ側で動画を読み込もうとします。古いブラウザはH.265をデコードできません。明らかにMP4なのに「対応していない形式」というエラーが出る場合は、動画コーデックが原因である可能性が高いです。

対処法:先に音声を抽出します(上記のコマンド)。そうすれば、どのツールでも受け付ける純粋なAACファイルが得られます。または、動画をH.264に再エンコードします:

ffmpeg -i hevc_video.mp4 -c:v libx264 -c:a copy h264_video.mp4

この方法は時間がかかり、ファイルサイズも大きくなります。文字起こしだけが必要なら、音声のみの抽出を選びましょう。

こうしたファイルはどこから来るのか(注意点)

Zoomクラウド録画

Zoomはクラウド録画を、約64〜128 kbpsモノラルのAAC音声付きH.264動画としてエンコードします。音声はストレージを最小限に抑えるため帯域制限と圧縮がかけられており、音声域外の周波数は除去されています。これは実は文字起こしにとって好都合です。ノイズの原因となる高周波がなくなり、モデルはクリーンな音声信号を受け取ります。話者が1〜2名のZoom会議では、明瞭な英語なら精度は通常95〜97%で、強い訛りや早口だとそれより低くなります。

MP4を先にダウンロードせずにZoom向けのワークフローを行いたい場合は、Zoom会議の文字起こしガイドでプラットフォームレベルのアクセス方法を順に説明しています。

iPhone・Androidの動画

iPhoneはMOVコンテナ(H.264またはHEVC、AAC音声)で録画し、同じ内容のままMP4として共有できます。Android端末は直接MP4で録画します。どちらもそのままアップロードして文字起こしできます。ただしファイルサイズの注意点は現実的です:iPhoneの4K 30fpsクリップは10分でおよそ3.5 GBになります。アップロード前に音声を抽出しましょう。

OBSの画面録画

詳細出力モードを使うOBSユーザーのファイルには、1つのMP4に6つの音声トラックが埋め込まれていることもあります。トラック1は通常フルミックスで、それ以降のトラックはソースごとのステムです。文字起こし結果が予想外の言語だったり、ナレーションではなくゲーム音声が文字起こしされていたりする場合は、間違ったトラックを掴んでいます。 ffprobeで中身を確認し、目的のトラックを抽出してください。

文字起こし後に録画素材へ字幕を戻したい場合は、字幕生成ツールがSRT・VTTファイルを出力します。これらはOBSや任意の動画編集ソフトに再インポートできます。

YouTubeダウンロード

yt-dlpなど類似ツールでYouTube動画をダウンロードした場合、出来上がるMP4の音声はYouTubeが配信した品質のままです。標準コンテンツでは通常128 kbps AAC、Premium対象コンテンツでは256 kbpsです。どちらも文字起こしには十分です。YouTube文字起こし生成ツールは、URLを直接読み込むことでダウンロードの手順を完全にスキップします。

カンファレンス・イベントの録画

マルチカメラのカンファレンス書き出しでは、音声が講演者のラベリアマイクではなく会場のPAシステム由来であることがよくあります。会場が広い場合や観客のノイズがある場合は、精度は85〜92%程度を見込んでください。書き出し前に個別のマイクフィードをミックスした業者からのファイルであれば、精度は高くなります。アップロード前にVLCなどのプレイヤーで音声を確認しましょう。耳にこもって聞こえるようなら、モデルも苦戦します。

サーバー側で何が起きているのか

MP4をアップロードすると、文字起こしバックエンドはおおむね次のような処理を実行します:

  1. コンテナを調査し、すべての音声ストリームを特定する。
  2. ストリーム0(またはユーザー指定のストリーム)を一時音声ファイルに抽出する。これはロスレスコピー操作です:ffmpeg -i input.mp4 -map 0:a:0 -vn -c:a copy temp.m4a
  3. Whisper系・Deepgram系モデルが想定するフォーマットである16 kHzモノラルPCMにリサンプリングする。
  4. 境界精度のため、5秒のオーバーラップ付き30秒ウィンドウに分割する。
  5. 推論を実行し、単語レベルのタイムスタンプを再びつなぎ合わせる。
  6. 句読点復元、話者分離(有効な場合)、後処理を適用する。
  7. 一時ファイルを削除する。

大きなファイルで最も時間がかかるのはステップ3(リサンプリング)です。特に4K HEVCファイルはコンテナの読み込みが遅くなります。事前に抽出した音声ファイルなら、ステップ1〜2を丸ごとスキップできます。

MP4に可変フレームレート(VFR)の映像トラックがある場合(特定アプリの画面録画でよく見られます)、抽出後も音声タイムスタンプは正確なままです。何も再エンコードしていないためです:-c:a copy は映像トラックとは独立に、音声ストリームのタイムスタンプから正確なタイミングを保持します。

アップロード方法:簡単まとめ

  1. 文字起こしツールを開き、MP4をドラッグ&ドロップします。ファイルがホスティングされている場合はURLを貼り付けます。
  2. 確認:ファイルに複数の音声トラックがあり、どれに発話が含まれるかわからない場合は、ffprobeとffmpegで正しいトラックを先に抽出します。
  3. 話されている言語を手動で選択します。自動検出でも機能しますが、手動選択により訛りのあるコンテンツや多言語コンテンツで2〜5ポイント精度が上がります。
  4. 送信します。30分の1080p Zoom録画は通常3〜6分で結果が返ってきます。
  5. 固有名詞、専門用語、話者が重なったクロストーク部分を見直します。
  6. 読む用途、編集する用途、字幕付けする用途に応じて、TXT、DOCX、SRT、VTTのいずれかで書き出します。

アカウント登録なしで文字起こしだけが必要な場合は、ConvertAudioToTextがアカウント不要でMP4の最初の10分を文字起こしします。無料アカウントを作成すると、サインアップ時に一度だけ10文字起こし分が追加されます。クレジットカードは不要です。

よくある質問

文字起こしの前にMP4から音声を抽出する必要はありますか?

いいえ。MP4はそのままアップロードしてください。文字起こしサービス側が、サーバー上でffmpegなどのライブラリを使って音声を抽出します。手動での抽出が役立つのは、ファイルがサービスのサイズ上限を超える場合だけです。その場合は音声だけを抽出すれば、品質を一切損なうことなくファイルを元の数分の一のサイズにできます。

MP4の文字起こし結果が違う言語になりました。何が起きたのでしょうか?

考えられる原因は2つあります。1つ目は、冒頭が短いファイルや訛りの強い音声で自動検出に失敗したケースです。言語を手動で設定しましょう。2つ目は、意外と多いのですが、MP4に複数の音声ストリームが含まれていて、ツールがストリーム0(希望とは別の言語)を文字起こししてしまったケースです。ffprobe -i video.mp4 -show_streams -select_streams a を実行して全音声ストリームと言語タグを確認し、正しいストリームを抽出してください。

iPhoneの4K動画がアップロードできません。「ファイルが大きすぎます」と表示されます。

iPhoneの4K 30fps撮影はHEVC形式でおよそ毎分350 MBになります。10分のクリップなら約3.5 GBとなり、多くのアップロード上限を超えてしまいます。ffmpeg -i input.mp4 -vn -c:a copy audio.m4a を実行して音声だけを抽出すると、同じ10分でも約10〜15 MBに収まります。こちらの音声ファイルをアップロードしてください。

MP4内のHEVC(H.265)動画は文字起こしの精度に影響しますか?

いいえ。音声抽出の際に動画コーデックは破棄されるため、HEVCとH.264の違いが文字起こし精度に影響することはありません。実用上の問題があるとすれば、一部のブラウザベースのアップローダーがアップロード前にブラウザ側で動画をデコードしようとする点です。古いブラウザではH.265をデコードできません。「対応していない形式」というエラーが出た場合は、先に音声を抽出するか、動画をH.264に再エンコードしてください。

OBSの録画でゲーム音声とマイク音声が別トラックになっています。両方とも文字起こしされますか?

多くのツールはストリーム0のみを文字起こしします。一般的なOBSのマルチトラック構成では、ストリーム0はミックス済みの全音声です。マイクトラックだけが必要な場合(OBSのデフォルト設定では通常ストリーム1)、アップロード前に ffmpeg -i recording.mp4 -map 0:a:1 -c copy mic.m4a で抽出してください。他の音源がミックスに混入している場合、マイクのみのトラックを文字起こしすることで話者分離の精度が向上します。

出典

Try transcription free

Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.

Related Articles