MP4動画から字幕を抽出する方法

著者:Flora Wang(動画ローカライゼーション専門家)· 2026年7月17日公開 · 読了時間6分

要点:まずMP4が実際に字幕トラックを含んでいるかどうかを確認しましょう——ほとんどは含んでいません。 無料のffprobeコマンド1つで数秒のうちに分かります。トラックがあれば、ffmpegコマンド1つでSRTファイルに変換できます。しかし、大多数のMP4——SNS動画、CapCutやPremiereの書き出し、ダウンロードしたクリップ——では字幕が映像に焼き込まれており、抽出する唯一の方法は、フレームからテキストを読み取るOCRです。本ガイドではこの両方の手順に加え、動画に字幕がまったくない場合も解説します。

MP4に字幕トラックがあるか確認するには?

ffmpegをインストールした状態で(Macならbrew install ffmpeg)、次を実行します:

ffprobe -v error -select_streams s \
  -show_entries stream=index,codec_name:stream_tags=language \
  -of default=noprint_wrappers=1 input.mp4

結果は次の2通りです:

出力その意味抽出方法
codec_name=mov_textMP4に埋め込みテキスト字幕トラックがある(プレーヤーで切り替え可能)ffmpegコマンド1つ
出力がまったくない字幕トラックがない——見えている字幕は映像に焼き込まれているOCR

ffprobeが何も表示しないのに、再生すると字幕が見える場合、その字幕は映像画像の一部です——どんな抽出ツールやコンバーターでも取り出せず、OCRだけが有効な方法です。

MP4の字幕トラックをSRTに抽出するには?

MP4はテキスト字幕をmov_text形式で保存します。ffmpegはコマンド1つでこれを標準的なSRTファイルに変換します:

# Extract the first subtitle track as SRT
ffmpeg -i input.mp4 -map 0:s:0 subtitles.srt

# If there are several tracks, 0:s:1 is the second, and so on
ffmpeg -i input.mp4 -map 0:s:1 subtitles.srt

出力は、どんな字幕エディターでも開け、どのプラットフォームにもアップロードできるプレーンなSRTファイルです。うまくいけばこれで完了——理想的なケースです。ffmpegがStream map '0:s:0' matches no streamsと報告した場合、そのMP4には字幕トラックがなく、こちらの方が圧倒的に多いケースです。

ほとんどのMP4動画に字幕トラックがないのはなぜ?

MP4の字幕サポートは常に後回しにされてきました。SNSプラットフォームはアップロード時に字幕トラックを削除するか、再生時に無視し、多くのプレーヤーはMP4ファイルの字幕メニューをそもそも表示しません——そのため制作者は字幕トラックに頼るのをやめました。

プラットフォームやプレーヤーがMP4の字幕トラックをこれほど不安定にしか扱わないため、ほとんどの制作者は代わりに字幕を映像に直接焼き込みます——だからこそ、一般的なMP4の字幕はffmpegやどんなコンバーターでも抽出できないのです。 CapCutの書き出し、ダウンロードしたリール、再アップロードされたクリップで見える字幕は、ほぼ必ずトラックではなくピクセルです。2種類の字幕の詳しい違いはこちら:埋め込み字幕と焼き込み字幕の違い

MP4から焼き込み字幕を抽出するには?

OCR——動画フレームから字幕テキストを読み取り、タイミング付きの字幕ファイルとして再構築するソフト——を使います:

  1. MP4をMac上のGeekLinkに取り込みます。
  2. OCR抽出を実行します。字幕領域を検出し、各フレームのテキストを読み取り、重複したフレームを統合して、正しくタイミングの合ったきれいな字幕行にします。
  3. SRTとして書き出す——または先に翻訳して2言語ファイルとして書き出します。

OCRはMac上でローカルに実行され——動画は一切アップロードされません——フォルダー内の動画をまとめて1つのバッチで処理できます。ステップごとの手順はこちら:OCRで焼き込み(ハードサブ)字幕を抽出する方法。動画に除外したい透かしやチャンネルロゴがある場合は、透かしを除いて字幕を抽出するをご覧ください。

MP4に字幕がまったくない場合は?

トラックもなく、焼き込みもされていない場合、抽出すべきものはありません——代わりに字幕を生成します。動画をGeekLinkに取り込み、Mac上でローカルにWhisper音声認識を実行すれば、編集・翻訳・SRT書き出しが可能なタイミング付き字幕が得られます。動画文字起こしのためのWhisper完全ガイドをご覧ください。

抽出した字幕を翻訳するには?

MP4から抽出したSRTファイルは、そのままGeekLinkに取り込んで、元のタイミングを保ったままAIで40以上の言語に翻訳できます。 翻訳済みSRT、2言語SRTとして書き出すか、字幕トラックを無視するプラットフォーム向けに翻訳を映像へ焼き込み直すこともできます。詳しいワークフロー:焼き込み字幕を翻訳する方法

FAQ

MP4ファイルから字幕を抽出するには?

まず字幕トラックを確認します:ffprobe -v error -select_streams s -show_entries stream=codec_name input.mp4。mov_textと表示されたら、ffmpeg -i input.mp4 -map 0:s:0 subtitles.srt を実行すればSRTが得られます。何も表示されない場合、字幕は映像に焼き込まれており、OCRが必要です。

字幕を抽出しようとするとffmpegが「matches no streams」と言うのはなぜ?

MP4に字幕トラックがないからです。再生中に見える字幕は映像画像に焼き込まれており——データではなくピクセルなので——ffmpegがマッピングできるストリームがありません。代わりにGeekLinkのようなOCRソフトがフレームから読み取ります。

オンラインツールでMP4から字幕を抽出できますか?

MP4に埋め込みトラックがある場合に限りますが、ほとんどはありません——しかも大きな動画をウェブサイトにアップロードするのは遅いです。焼き込み字幕の場合、Mac上でローカルに動くOCRの方が速く、動画のプライバシーも守れます。

CapCutやPremiereの書き出しから字幕を抽出できますか?

エディターからの書き出しはほぼ必ず焼き込みです。書き出し時に字幕が映像へレンダリングされるため、ファイル内にトラックはありません。OCRが唯一の方法です——GeekLinkが字幕領域を検出し、フレームごとにテキストを読み取り、タイミング付きSRTを書き出します。

MP4とMKVから字幕を抽出する場合の違いは?

MKVは埋め込み字幕トラック(SRT、ASS、またはBlu-rayのPGS)を持っていることが多く、抽出は通常ffmpegやmkvextractで成功します。MP4はそもそもトラックを持っていることが少なく、抽出は通常、焼き込み字幕へのOCRを意味します。関連ガイドをご覧ください:MKVファイルから字幕を抽出する方法。

関連記事

ffmpegでは見つからない字幕ですか?

GeekLinkは焼き込み字幕をOCRで読み取り、きれいなSRTを書き出します——すべてMac上でローカルに。

無料ダウンロード