FFmpeg 命令应用多个过滤器并限制最终文件大小

FFmpeg command to apply multiple filters and limit the final file size

我正在使用下面的 命令将视频转换为定义比例的格式,以便对字幕进行硬编码

原始语法

ffmpeg -i "Original File.mov"  -vf subtitles=Subtitles.srt -vf scale=1920:1080 \
       -crf 12 "Final File".mov

问题

我想进一步扩展这个命令并且:

旁注

我认为在预定义文件大小的情况下,-crf 12 参数将是多余的?

您可以通过定义平均比特率来设置文件大小的上限,例如-b:v 4000k 和最大比特率 -maxrate 5000k -bufsize 5000k,具体取决于您的视频时长。如 FFmpeg wiki 所述。您可以使用 CRF 代替 -b:v,但您需要保留 maxrate 和 bufsize。

要应用多个过滤器,您可以在一个过滤器链中指定它们,用逗号分隔,因此:

-vf subtitles=Subtitles.srt,scale=1920:1080

据我所知,这些高级字幕选项适用于作为常规输入而不是通过硬编码字幕过滤器呈现的字幕