0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FFmpegの字幕の書式設定

Last updated at Posted at 2025-08-23

概要

前回、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'

ffmpeg_vf1.png

数値部分は
1: 左下, 2: 下中央, 3: 右下,
5: 左上, 6: 上中央, 7: 右上,
9: 中央左, 10: 中央, 11: 中央右
となる。
ffmpeg_vf2.png

マージン

左インデント・右インデント・上下位置を設定することができる。
以下の字幕例は配置が下中央の場合。

  • 左インデント
'MarginL=100'

ffmpeg_vf3.png

  • 右インデント
'MarginR=100'

ffmpeg_vf4.png

  • 上下位置
    正は上に移動、負は下に移動
'MarginV=100'

ffmpeg_vf5.png

'MarginV=-5'

ffmpeg_vf6.png

フォント名

Windows11の場合、フォントを指定しないと Yu Gothic UI が使われる。

今回用いたFFmpegでは日本語のフォント名も使えた。
FFmpegのバージョンによっては英語のフォント名しか使えないこともあるようなので注意(フリーフォントであればフォントファイルをいじって英文のフォント名に変えてしまうのも手)。

'FontName=BIZ UDPゴシック'

ffmpeg_vf7.png

文字サイズ

数値でサイズ指定

'FontSize=25'

ffmpeg_vf8.png

縁取りか背景塗りか

デフォルトは縁取りで、BorderStyle=1を指定した時と同じ

'BorderStyle=1'

ffmpeg_vf9.png

3を指定すると、文字の範囲で背景塗り

'BorderStyle=3'

ffmpeg_vf10.png

4を指定すると、最長行の横幅で背景塗り

'BorderStyle=4'

ffmpeg_vf11.png

縁取りの太さ

数値で太さ指定(無指定時は1と同等)

'Outline=2'

ffmpeg_vf12.png

文字色

文字色は&HAABBCCDDのように16進数で指定する。
最初2文字(AA)が透明度(00が不透明~FFが透明)
次の2文字(BB)が青
その次の2文字(CC)が緑
最後の2文字(DD)が赤
となる。

'PrimaryColour=&H0000FF00'

ffmpeg_vf13.png

'PrimaryColour=&H80FFFFFF'

ffmpeg_vf14.png

縁取り色/背景色

同じOutlineColourで指定するが、縁取りの場合は縁取り色、背景の場合は背景色となる。

'OutlineColour=&H00FF0000'

ffmpeg_vf15.png

'BorderStyle=3,OutlineColour=&H000000FF'

ffmpeg_vf16.png

文字間

数値で字間指定

'Spacing=5'

ffmpeg_vf17.png

影付き

数値で親文字との距離を指定できる。

'Shadow=2'

ffmpeg_vf18.png

srtファイル内で書式を設定する

以上、force_styleによる一括指定について解説してきたが、フォント、文字サイズ、文字色についてはsrtファイル側で<font>タグを用いることにより指定することができる。

フォント名

<font face="BIZ UDPゴシック">~</font>

ffmpeg_vf19.png

文字サイズ

<font size=25>~</font>

ffmpeg_vf20.png

文字色

HTMLタグと同様で、色名での指定も、#AABBCC(16進数)のような指定も可。

<font color="yellow">~</font>

ffmpeg_vf21.png

字幕ソフトで設定する方法も

これらタグの挿入はテキストエディタを用いてもよいが、フリーのSubtitle Editでも行える。
字幕編集を本格的に行うのであれば、入れておいて損はない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?