FFMPEG是很强大灵活的视频工具。添加字幕是制作视频必备的步骤,怎么用FFMPEG来为你自己的视频添加字幕呢?
为什么是FFMPEG?
其实,世界上已经有很多方便制作视频的工具软件和手机APP了,例如抖音公司的剪映等。它们使用图形化的界面,做了很多便利性的操作优化,功能也很强大,添加字幕的功能不在话下。那我们为什么还要使用命令行方式的FFMPEG呢?当然,市面上很多视频工具在底层是调用FFMEPG的库,但这并不是我们考虑的因素。
为什么使用命令行方式的FFMPEG,是因为可能有这些好处:流程容易批量化,细节可以更精细调节,个性化选择更大。当你需要经常做大量的视频时,可以考虑用命令行批处理。
FFMPEG加字幕基本方式
用个小例子来说明如何用FFMEPG添加字幕。
假设我们有一个视频文件叫做nosub.mp4,然后我们已经做好了一个字幕文件叫做sub.srt,从后缀名可以知道这个字幕文件格式是srt的。
那我们可以使用下面的命令行来把字幕加到视频中。
ffmpeg -i nosub.mp4 -vf subtitles=sub.srt sub.mp4
这个命令执行后,会把sub.srt的字幕附加到视频nosub.mp4中,并输出到sub.mp4这个新文件。
更多的控制项目
如果对srt文件有基本的了解,会知道里面只包含了字幕文字和时间轴信息,对于更多的信息例如文字的大小,文字的颜色,文字的位置,字体等,srt字幕文件是不包含这样的信息的。这个时候,ffmpeg会用缺省的一些方式来处理。
但实际应用中,因为美观和其他的要求,我们常常需要指定这些参数信息,让字幕表现得更漂亮和灵活。
例如,接上面的例子,我们希望用特定的字体例如得意黑来展现字幕,就可以增加更多的参数:
ffmpeg -i nosub.mp4 -vf subtitles=sub.srt:force_style='FontName="得意黑" sub.mp4
上面增加了一个force_style的参数,把字体的名称提供给ffmpeg。当然了,你要保证字体已经安装了,并且字体可以被ffmpeg找到。
用这种方法添加字幕,还有很多参数可以选择,可以参考ffmpeg官方网站的命令行说明。
当然,我们也可以直接用ass格式的字体文件,里面已经包含了包含字体在内的设定,比srt更加强大。FFMPEG也可以直接把ass格式的字体文件加到视频里的。
关联阅读:怎么用FFMPEG给视频添加背景音乐?