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

标签 macos bash ffmpeg video-processing

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


6年前关闭。







Improve this question




我正在使用 下面的命令将视频转换为定义比例的格式并硬编码字幕

原始语法

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
    

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

    关于macos - FFmpeg 命令应用多个过滤器并限制最终文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040916/

    相关文章:

    ffmpeg - 如何使用 FFmpeg 从视频中间创建缩略图

    macos - 无法在OSX上建立 Electron 1.6.2

    macos - 使用 boot2docker 将 heroku postgres 数据库转储导入到 docker 数据库容器中

    linux - 将文件从桌面复制到虚拟服务器 LINUX

    bash - Bash 中不区分大小写的比较

    bash - 查找远程和本地版本号,比较它们,如果更大则下载

    linux - 获取进程 ID

    unix - 将 udp unix 套接字作为输入传递给 ffmpeg

    macos - 提交给Mac App Store时处理次要版本之间OS X库数据类型的差异

    iphone - HTTP 直播、FFMPEG 和 FFSERVER 以及 iPhone OS 3