TED のプレゼンテーション動画をブラウザやアプリで見るときに字幕が選択できるが、これを ffmpeg で PC に保存し動画に合わせる方法。わざわざ字幕付き動画は公式から普通に保存できるが2言語の字幕付きの動画に変換する方法も併せて紹介する。

TED: Ideas worth spreading

動画の保存方法は PC からは再生ページのプレイヤ右下の「Share」から動画、音声、字幕を焼き付けた(ハードサブ)動画が選択できる。字幕の保存方法は簡単な方法はないが、まずブラウザでソースコードを表示して「ted://talks/」の次に書いてある数字を控えておき字幕用のアドレスに記入する。プレイヤに日本語字幕が選択できなければもちろん保存は出来ない。昔は動画リンクから字幕IDは調べられたが調べられなくなっている。

日本語字幕用のアドレス(1234 の部分に上で調べた数値を記入)。英語の場合は末尾が eng。
https://www.ted.com/talks/subtitles/id/1234/lang/jpn

そのほかの言語については以下を参照。
Get subtitle for TED video

字幕をブラウザから保存すると、json 形式になりこれでは動画プレイヤで扱えないので ffmpeg で変換する。

ffmpeg で字幕を扱いやすい .srt に変換し保存する。
ffmpeg -i https://www.ted.com/talks/subtitles/id/1234/lang/jpn output.srt

ネット越しではなくて PC に json を保存しても変換できる。
ffmpeg -i ted.json output.srt

公式ドキュメント:FFmpeg Formats Documentation : tedcaptions

複数字幕を同時に表示するには複数の字幕を1つに合わせる。方法として手動でコピペする方法と「cat」コマンドで連結する方法がある。この場合は元データの json ではなく字幕形式に予め変換しておく。以下のコマンド例は2つの字幕を1つにする。
cat jp.srt en.srt > jp-en.srt

動画に合わせるには映像と音声をコピーし、字幕もコピーする。字幕ファイルは .mkv の方が扱いやすい。
ffmpeg -i input.mp4 -i jp-en.srt -map 0 -map 1 -c copy -c:s copy output.mkv

.mp4 なら字幕コーデックを mov_text にする。ただしこれだと複数字幕を一つにしたときに字幕が複数段に表示されないので複数字幕の表示には非推奨。
ffmpeg -i input.mp4 -i jp-en.srt -map 0 -map 1 -c copy -c:s mov_text output.mp4

関連記事
ass の字幕ファイルを動画に焼き付ける ass
字幕ファイルを動画に焼き付ける subtitles
【ffmpeg】 マルチトラックの動画の作り方

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)