maaash.jp

what I create

ffmpegで動画に字幕を焼き込む

動画と字幕ファイル(.srtファイル)を別々に受け取り、動画に字幕を焼き込む(ハードサブ)お仕事のmemo

前提知識

srtファイルは、テキストファイルに字幕のテキストと、その表示開始時刻、終了時刻を書いたテキストファイル

assファイルは、srtファイルに加え、フォントやフォントサイズ、影などのスタイルを含んだテキストファイル

事前準備

ffmpegを --with-libass オプション付きでビルドする

1
brew install ffmpeg --with-libass

Aegisub Advanced Subtitle Editor をインストール

作業

ffmpegを使って、以下のようにsrtファイルをassに変換することができる。

1
ffmpeg -i subtitles.srt subtitles.ass

ところがこれで生成されたassファイルを動画に焼き込もうとすると、
(ffmpegが生成した)スタイルの指定に問題があってそれをffmpegがスルーするのか、
スタイルの設定が反映されず、16ptのArialフォントになってしまう。

ここで Aegisub を使う。
Aegisubでsrtファイルを開くと、srtファイルに文法エラーがあった時に、行番号を丁寧にも教えてくれるのでsrtファイルを修正する。
最後に Save Subtitles as でassファイルに書き出す。

で、焼き込む

1
ffmpeg -i in.mov -vf subtitles=subtitles.ass out.mov

とりあえずできた。

Comments