我正在使用这个命令来裁剪、缩放,然后添加字幕作为覆盖
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。
硬子
subtitles
视频过滤器可用于硬字幕或老化字幕。这需要重新编码,并且字幕成为视频本身的一部分。force_style
选项
要自定义字幕,您可以使用 force_style
subtitles
中的选项筛选。使用字幕文件的示例 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) style fields .PrimaryColour
以蓝绿红顺序为十六进制。请注意,这是 HTML 颜色代码的相反顺序。颜色代码必须始终以 &H
开头并以 &
结尾.神盾局
或者,您可以使用 Aegisub创建和风格化您的字幕。另存为SubStation Alpha (ASS) 格式,因为它可以支持字体大小、字体颜色、阴影、轮廓、缩放、角度等。
软潜艇
这些是文件中的附加流。播放器只是在播放时渲染它们。比硬字幕更灵活,因为:
当然,如果设备或播放器无法使用软潜艇,有时需要硬潜艇。
使用 stream copy 将字幕混合到视频文件中模式:
ffmpeg -i input.mkv -i subtitles.ass -codec copy -map 0 -map 1 output.mkv
没有任何内容被重新编码,因此整个过程将很快并且质量和格式将被保留。使用 SubStation Alpha (ASS) 字幕将允许您随意格式化字幕。这些可以使用 Aegisub 创建/转换。
另见
subtitles
video filter documentation 关于ffmpeg - 如何在 ffmpeg 视频过滤器的字幕中添加字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21363334/