概要
前回、VibeとFFmpegで動画に字幕を付けるの記事で予告した通り、今回はFFmpeg字幕の書式設定について解説する。
とはいえ、vfオプションによる書式設定のやり方はニコラボの「字幕ファイルを動画に焼き付ける subtitles」で解説されている。これを読めば一通り書式設定ができるだろう。
この記事では、上記記事で触れられている項目の一部について具体的に解説していく。
vfオプションで書式を設定する
書式
vfオプションで書式を設定するには、force_style=を用いる。
設定したい内容はシングルクォーテーションで括り、複数の要素を設定したい場合はカンマで区切る。
例として、文字色を黄色、背景色黒で25%透過にするコマンド例は以下のようになる。
(動画ファイル名:cc10.mp4、字幕ファイル名:cc10.srt、出力ファイル名:cc10_yellow_back25p.mp4)
ffmpeg -i cc10.mp4 -vf "subtitles=cc10.srt:force_style='BorderStyle=3,PrimaryColour=&H0000FFFF,OutlineColour=&H40000000'" cc10_yellow_back25p.mp4
以下の項では、force_styleに与える部分のみ抜粋して示す。
配置
標準では下中央に中央揃えで字幕が表示されるが、上中下/左中右と配置を変更することができる。
複数行の場合、左に配置した場合は左揃え、右に配置した場合右揃えとなる。
'Alignment=1'
数値部分は
1: 左下, 2: 下中央, 3: 右下,
5: 左上, 6: 上中央, 7: 右上,
9: 中央左, 10: 中央, 11: 中央右
となる。

マージン
左インデント・右インデント・上下位置を設定することができる。
以下の字幕例は配置が下中央の場合。
- 左インデント
 
'MarginL=100'
- 右インデント
 
'MarginR=100'
- 上下位置
正は上に移動、負は下に移動 
'MarginV=100'
'MarginV=-5'
フォント名
Windows11の場合、フォントを指定しないと Yu Gothic UI が使われる。
今回用いたFFmpegでは日本語のフォント名も使えた。
FFmpegのバージョンによっては英語のフォント名しか使えないこともあるようなので注意(フリーフォントであればフォントファイルをいじって英文のフォント名に変えてしまうのも手)。
'FontName=BIZ UDPゴシック'
文字サイズ
数値でサイズ指定
'FontSize=25'
縁取りか背景塗りか
デフォルトは縁取りで、BorderStyle=1を指定した時と同じ
'BorderStyle=1'
3を指定すると、文字の範囲で背景塗り
'BorderStyle=3'
4を指定すると、最長行の横幅で背景塗り
'BorderStyle=4'
縁取りの太さ
数値で太さ指定(無指定時は1と同等)
'Outline=2'
文字色
文字色は&HAABBCCDDのように16進数で指定する。
最初2文字(AA)が透明度(00が不透明~FFが透明)
次の2文字(BB)が青
その次の2文字(CC)が緑
最後の2文字(DD)が赤
となる。
'PrimaryColour=&H0000FF00'
'PrimaryColour=&H80FFFFFF'
縁取り色/背景色
同じOutlineColourで指定するが、縁取りの場合は縁取り色、背景の場合は背景色となる。
'OutlineColour=&H00FF0000'
'BorderStyle=3,OutlineColour=&H000000FF'
文字間
数値で字間指定
'Spacing=5'
影付き
数値で親文字との距離を指定できる。
'Shadow=2'
srtファイル内で書式を設定する
以上、force_styleによる一括指定について解説してきたが、フォント、文字サイズ、文字色についてはsrtファイル側で<font>タグを用いることにより指定することができる。
フォント名
<font face="BIZ UDPゴシック">~</font>
文字サイズ
<font size=25>~</font>
文字色
HTMLタグと同様で、色名での指定も、#AABBCC(16進数)のような指定も可。
<font color="yellow">~</font>
字幕ソフトで設定する方法も
これらタグの挿入はテキストエディタを用いてもよいが、フリーのSubtitle Editでも行える。
字幕編集を本格的に行うのであれば、入れておいて損はない。



















