[FFmpeg] FFmpeg で字幕を付ける

スポンサーリンク
FFmpeg

環境

Ubuntu 12.04.2 (64bit) (3.5.0-24-generic)
FFmpeg

内容

FFmpeg でエンコードする際に字幕を付けてみます.

ASS フォーマットの字幕を付けてみます.
そのためには,FFmpeg をビルドする際に –enable-libass オプションを付けます.

例えば,

$ ./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-nonfree --enable-shared --enable-libass
$ make -j8
$ sudo make install
$ sudo ldconfig

configure 実行の際に下記のエラーが出る場合は,

ERROR: libass not found

必要なパッケージをインストールします.

$ sudo apt-get install libass-dev

ASS の仕組みと書き方については,http://www.geocities.co.jp/bancodesrt/tool/ass.html に詳しく書かれています.
例えば下記のような ASS ファイルを作成してみます.
ビデオの 1 秒目から 30 秒目までの間,Hello という字幕が表示されるという設定です.

[Script Info]
ScriptType: v4.00+
Collisions: Normal
ScaledBorderAndShadow: Yes
PlayResX: 1280
PlayResY: 720
Timer: 100.0000
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,MS UI Gothic,24,&H00f8ffff,&H0000ffff,&H00000000,&H80000000,-1,-1,0,0,200,200,0,0.00,1,2,3,2,20,20,40,128

[Events]
Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:30.00,Voice01,,0000,0000,0000,,Hello

例えば,ASS ファイルの名前を test.ass としてビデオと同じ階層に置く場合,下記のようにすることで out.mp4 に字幕が付くようになります.

$ ffmpeg -i in.mp4 -vf "ass=test.ass" out.mp4

参考: http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20burn%20subtitles%20into%20the%20video

FFmpeg
スポンサーリンク
コピペワールド