TL;DR:動画字幕は実用上4種類です。外部字幕は手元にある .srt/.ass ファイル、埋め込み字幕は動画内のテキストまたは画像トラック、焼き込み字幕は映像に描き込まれているためフレームOCRが必要です。クローズドキャプションは動画信号内のCEA-608/708テキストで、ccextractorなどを使えばOCRなしで抽出できます。5秒でわかるテスト:プレーヤーで字幕をオフにしても残るなら、焼き込み字幕です。
「字幕を抽出」しようとしてツールが何も見つけられなかった、あるいは使えないものを見つけた場合、ほぼ必ず、そのツールが想定しているのとは違う種類の字幕を扱っているからです。まず4種類のどれなのかを見極めれば、正しい方法は明らかになります。
自分の字幕がどの種類か見分けるには?
切り替えテスト。 VLC(または任意のプレーヤー)で動画を開き、字幕のオン/オフメニューを探します。字幕をオフにできますか?
- 消える場合 → 字幕は別トラック(埋め込み)か、外部ファイルです。テキストまたは画像として抽出可能です。
- 何をしても画面に残る場合 → 字幕は映像に焼き込まれています(ハードサブ)。トラックはなく、OCR が必要です。
ffmpeg の手がかり。 ffmpeg -i yourvideo.mp4 を実行します。Subtitle: ストリームが表示されれば、埋め込みトラックがあります。何も表示されないのに動画で字幕がはっきり見える場合は、映像に焼き込まれています(または ffmpeg がマッピングしなかったクローズドキャプション CC ストリーム)。だから「字幕を抽出」コマンドが何も返さないのです。
タイプ1 — 外部字幕(.srt / .ass)
簡単なケース:字幕はすでに動画の隣にある別ファイルか、字幕サイトからダウンロードできるものです。抽出するものは何もなく、ファイルを開くか編集するだけです。別の言語に翻訳したいだけなら、.srt を翻訳ツールにインポートし、タイミングをそのまま保ちます。
タイプ2 — 埋め込み/ソフト字幕トラック(MKV、一部の MP4)
字幕はコンテナ内のストリームなので、画質を損なわずに取り出せます。2つのサブケースがあります:
- テキストトラック(MKV や MP4 内の SRT/ASS/SSA/WebVTT) → Mac 上の GeekLink に動画をインポートします。埋め込みトラックを自動検出し、ワンクリックできれいな SRT に抽出します。OCR も再文字起こしも不要です。アプリをインストールしたくない場合は、mkvextract(MKVToolNix の一部)が無料のコマンドライン代替手段です。
- 画像トラック(DVD の VobSub、Blu-ray の PGS/SUP) → これらはテキストストリームではなくテキストの画像なので、SRT に変換するには OCR ベースの字幕トラックツールが必要です。GeekLink の埋め込みトラック抽出はテキストベースのトラックのみに対応しており、この画像トラックのケースには対応していません。
トラックがまったくない焼き込みテキスト(上記どちらのツールも掴むものがない)については、下のタイプ3をご覧ください。
タイプ3 — 焼き込み/ハードサブ字幕(難しいケース)
文字がすべてのフレームに永久的に描き込まれています — トラックも切り替えもありません。トラックベースのツール(GeekLink 自身の埋め込みトラック抽出や mkvextract を含む)は掴むものを何も見つけられません。指し示す字幕ストリームがないからです。テキストを取り戻す唯一の方法は、動画の映像をフレームごとに読み取る OCR です。
- Windows では: VideoSubFinder が字幕フレームを抽出し、Subtitle Edit が画像を OCR します。2ステップの工程です。
- Mac では: GeekLink が1パスで行います。字幕エリアに枠を描くと、焼き込みテキストを編集可能でタイミング同期済みの SRT として読み取ります。フォルダ全体を一度に、ローカルで、無料で。
タイプ4 — クローズドキャプション(CEA-608/708)
クローズドキャプションは通常の字幕トラックではなく、動画信号の中にテキストとして格納されています。放送番組の録画や一部の MP4/MOV でよく使われ、話者名や効果音の説明を含むこともあります。もともとテキストデータなので OCR は不要です。ccextractor、またはストリームを認識できる場合は ffmpeg で抽出します。
プレーヤー上では埋め込み字幕のように見えても、抽出方法は異なります。ffmpeg に通常の字幕ストリームが表示されない場合、焼き込みと判断する前に CEA-608/CEA-708 データの有無を確認してください。
簡易判定表
| あなたの状況 | 種類 | すべきこと |
|---|---|---|
| .srt ファイルが動画の隣にある | 外部 | 開くか翻訳するだけ |
VLC で字幕をオフにできる。ffmpeg が Subtitle: ストリームを表示する | 埋め込み(テキスト) | GeekLink(Mac)または mkvextract |
| オフにはできるが、DVD/Blu-ray である | 埋め込み(画像) | 画像トラック OCR ツール |
| 字幕がオフにできない — 映像に固定されている | 焼き込み | フレーム OCR — GeekLink(Mac) |
| 放送録画、または CEA-608/708 データを含む MP4/MOV | クローズドキャプション | ccextractor または ffmpeg |
よくある質問
自分の字幕がハードサブかどうか、どうすればわかる?
プレーヤーでオフにできず、画面に固定されたまま残るなら、それは焼き込み(ハードサブ)です。字幕のオン/オフ切り替えで消えるなら、別トラックです。
焼き込み字幕をオフにできる?
いいえ。動画の映像の一部なので、どのプレーヤーでも隠せません。取り除くことはできませんが、OCR でテキストを編集可能な SRT として取り戻せます。
なぜ ffmpeg が「字幕トラックなし」と言うの?
字幕がトラックではなく、映像に焼き込まれている(または ffmpeg がマッピングしなかったクローズドキャプション CC ストリーム)からです。焼き込みテキストには、トラック抽出ではなく動画フレームの OCR が必要です。
ソフトサブとハードサブの違いは?
ソフトサブは別の切り替え可能なトラックです(テキストまたは画像として抽出可能)。ハードサブ(ハードコード/焼き込み)は映像に描き込まれており、取り戻すには OCR が必要です。
焼き込み字幕用の Mac ツールはある?
はい。GeekLink は Apple Silicon Mac 上でネイティブに、焼き込み字幕を編集可能な SRT に OCR します。geeklink.dev からの無料の直接ダウンロード(Mac App Store ではありません)で、アカウントは不要です。
GeekLink は埋め込み(ソフト)字幕トラックも抽出できる?
はい。GeekLink はインポート時にテキストベースの埋め込みトラック(SRT、ASS、SSA、WebVTT)を検出し、ワンクリックできれいな SRT に抽出します。OCR も再文字起こしも不要です。画像ベースの埋め込みトラック(DVD の VobSub、Blu-ray の PGS)には対応していません。それらには専用の画像トラック OCR ツールが必要です。
CEA-608/CEA-708クローズドキャプションにOCRは必要?
いいえ。クローズドキャプションは動画信号内のテキストデータなので、ccextractor または ffmpeg で抽出できます。OCR が必要なのは画像ベースの字幕トラックと、映像のピクセルに焼き込まれた字幕です。
関連記事
開示: GeekLink は当社自身の製品です。Mac 上で埋め込み(テキスト)字幕トラックと焼き込み(ハードサブ)字幕の両方を抽出します。埋め込み画像トラック(DVD/Blu-ray)や、Mac をお使いでない場合は、mkvextract がテキストトラック向けの無料コマンドライン代替手段です。