このコマンドを使用してトリミング、拡大縮小し、字幕をオーバーレイとして追加しています
ffmpeg -i input.avi -vf "[in]crop=in_w:in_h-20:0:0 [crop]; [crop]scale=320:240 [scale];[scale]subtitles=srt.srt" -aspect 16:9 -vcodec libx264 -crf 23 oq.mp4
どうすれば字幕のフォントサイズ/色を設定できますか?
字幕を使用するには、hardsubsとsoftsubsの2つの方法があります。
subtitles
ビデオフィルターを使用して、字幕をハードサブまたはバーンインできます。これには再エンコードが必要で、字幕はビデオ自体の一部になります。
force_style
オプション字幕をカスタマイズするには、subtitles
フィルターのforce_style
オプションを使用できます。字幕ファイルsubs.srt
を使用して、フォントサイズを24にし、フォントの色を赤にします。
ffmpeg -i video.mp4 -vf "subtitles=subs.srt:force_style='Fontsize=24,PrimaryColour=&H0000ff&'" -c:a copy output.mp4
force_style
は SubStation Alpha(ASS)スタイルのフィールド を使用します。
PrimaryColour
は16進数で、青、緑、赤の順です。これは、HTMLカラーコードとは逆の順序であることに注意してください。カラーコードは常に&H
で始まり、&
で終わる必要があります。
または、 Aegisub を使用して字幕を作成し、スタイルを設定することもできます。名前を付けて保存 SubStation Alpha (ASS)形式は、フォントサイズ、フォントの色、影、輪郭、スケーリング、角度などをサポートできるため、.
これらは、ファイル内の追加のストリームです。プレーヤーは、再生時にそれらをレンダリングするだけです。次の理由により、ハードスバッビングよりも柔軟性があります。
もちろん、デバイスやプレーヤーがソフトサブを利用できない場合は、ハードサブが必要になることがあります。
ストリームコピー モードを使用して字幕をビデオファイルに多重化するには:
ffmpeg -i input.mkv -i subtitles.ass -codec copy -map 0 -map 1 output.mkv
何も再エンコードされないため、プロセス全体が迅速になり、品質とフォーマットが維持されます。
SubStation Alpha(ASS)字幕を使用すると、字幕を好きなようにフォーマットできます。これらはAegisubで作成/変換できます。
ドキュメントから、srt字幕ファイルを使用し、KEY=VALUE
で区切られたASSスタイル形式,
のペアを配置することでフォントのサイズを変更できます。そう、
ffmpeg -i input.mp4 -vf subtitles=sub.srt:force_style='FontName=DejaVu Serif,FontSize=24' -vcodec libx264 -acodec copy -q:v 0 -q:a 0 output.mp4
ビデオの品質を維持しながら、DejaVuフォントとサイズ24の字幕を配置します。私は自分で試してみましたが、うまくいきました。