動画と字幕ファイル(.srtファイル)を別々に受け取り、動画に字幕を焼き込む(ハードサブ)お仕事のmemo
前提知識 見出しへのリンク
srtファイルは、テキストファイルに字幕のテキストと、その表示開始時刻、終了時刻を書いたテキストファイル
assファイルは、srtファイルに加え、フォントやフォントサイズ、影などのスタイルを含んだテキストファイル
事前準備 見出しへのリンク
ffmpegを --with-libass オプション付きでビルドする
brew install ffmpeg --with-libass
Aegisub Advanced Subtitle Editor をインストール
作業 見出しへのリンク
ffmpegを使って、以下のようにsrtファイルをassに変換することができる。
ffmpeg -i subtitles.srt subtitles.ass
ところがこれで生成されたassファイルを動画に焼き込もうとすると、
(ffmpegが生成した)スタイルの指定に問題があってそれをffmpegがスルーするのか、
スタイルの設定が反映されず、16ptのArialフォントになってしまう。
ここで Aegisub を使う。
Aegisubでsrtファイルを開くと、srtファイルに文法エラーがあった時に、行番号を丁寧にも教えてくれるのでsrtファイルを修正する。
最後に Save Subtitles as でassファイルに書き出す。
で、焼き込む
ffmpeg -i in.mov -vf subtitles=subtitles.ass out.mov
とりあえずできた。