FFmpeg 命令应用多个过滤器并限制最终文件大小
FFmpeg command to apply multiple filters and limit the final file size
我正在使用下面的 ffmpeg 命令将视频转换为定义比例的格式,以便对字幕进行硬编码
原始语法
ffmpeg -i "Original File.mov" -vf subtitles=Subtitles.srt -vf scale=1920:1080 \
-crf 12 "Final File".mov
问题
我想进一步扩展这个命令并且:
- 确保生成文件小于 2GB
- 我想在 advanced subtitle options 中包含其他参数,例如设置 canvas 大小和修复潜在延迟
旁注
我认为在预定义文件大小的情况下,-crf 12
参数将是多余的?
您可以通过定义平均比特率来设置文件大小的上限,例如-b:v 4000k
和最大比特率 -maxrate 5000k -bufsize 5000k
,具体取决于您的视频时长。如 FFmpeg wiki 所述。您可以使用 CRF 代替 -b:v
,但您需要保留 maxrate 和 bufsize。
要应用多个过滤器,您可以在一个过滤器链中指定它们,用逗号分隔,因此:
-vf subtitles=Subtitles.srt,scale=1920:1080
据我所知,这些高级字幕选项适用于作为常规输入而不是通过硬编码字幕过滤器呈现的字幕
我正在使用下面的 ffmpeg 命令将视频转换为定义比例的格式,以便对字幕进行硬编码
原始语法
ffmpeg -i "Original File.mov" -vf subtitles=Subtitles.srt -vf scale=1920:1080 \
-crf 12 "Final File".mov
问题
我想进一步扩展这个命令并且:
- 确保生成文件小于 2GB
- 我想在 advanced subtitle options 中包含其他参数,例如设置 canvas 大小和修复潜在延迟
旁注
我认为在预定义文件大小的情况下,-crf 12
参数将是多余的?
您可以通过定义平均比特率来设置文件大小的上限,例如-b:v 4000k
和最大比特率 -maxrate 5000k -bufsize 5000k
,具体取决于您的视频时长。如 FFmpeg wiki 所述。您可以使用 CRF 代替 -b:v
,但您需要保留 maxrate 和 bufsize。
要应用多个过滤器,您可以在一个过滤器链中指定它们,用逗号分隔,因此:
-vf subtitles=Subtitles.srt,scale=1920:1080
据我所知,这些高级字幕选项适用于作为常规输入而不是通过硬编码字幕过滤器呈现的字幕