为什么 FFMPEG 总是生成很大的 WebM 文件?

2023-12-21

我正在尝试将我的电影编码为 WebM:

ffmpeg -i input.MOV -codec:v libvpx -quality good -cpu-used 0 -b:v 10k
-qmin 10 -qmax 42 -maxrate 10k -bufsize 20k -threads 8 -vf scale=-1:1080
-codec:a libvorbis -b:a 192k
output.webm

我想以几种不同的比特率(视频和音频组合)进行编码:

  • 2192kbps
  • 1692kbps
  • 1000kbps

问题是,无论我输入哪种比特率,我总是得到比特率高于 1900 kbps 的文件。 (上面的代码示例为 1914 kbps。)

我究竟做错了什么?


libvpx在速率控制和质量设置方面有点复杂。请参阅vpx 编码指南 http://ffmpeg.org/trac/ffmpeg/wiki/vpxEncodingGuideVP8 编码参数指南 http://www.webmproject.org/docs/encoder-parameters/了解更多信息。我花了一个小时挖掘源代码才理解它。

如果您想设置恒定比特率,则必须设置b:v, maxrate and minrate为相同的值,例如像这样(请注意,为了简洁起见,我在此处省略了音频选项):

ffmpeg -i input.mov -c:v libvpx -b:v 1900K -maxrate 1900K -minrate 1900K output.webm

如果您想使用可变质量并仅指定比特率的上限,那么您需要设置两者b:v and crf。如果你遗漏了crf,指定的比特率将仅取平均值。只有crf,编码器改变了含义b:v至最大允许速率。

ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm

CRF 的值为 10 是一个很好的起点,但是libvpx可能会在范围内改变每帧的质量qmin ≤ q ≤ qmax,如果需要,您也可以指定。将下限设置为 10qmin对我来说似乎有点高,但本质上无论如何你都必须进行一些尝试和错误,因为如果最大比特率太低,你会不断地使其饱和。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 FFMPEG 总是生成很大的 WebM 文件? 的相关文章

随机推荐

  • 符号表有限制吗?

    我一直在研究一些加载 python osx 上的 2 7 文件作为配置文件的极端情况 我想看看如果我循环运行 execfile 会发生什么行为 我预计会发生内存不足错误或大量交换 但当我得到不同的结果时 我感到非常惊讶 我设置了一个测试场景
  • 在一段时间内不活动后,如何使用户会话过期?

    我正在开发一个无服务器 Reactjs 项目 并使用 AWS amplify 来管理我的用户 我在测试中注意到 如果我以用户身份登录 第二天当我访问该网站时仍然会登录 我阅读了 Amplify 的文档 该库会自动刷新令牌 并且想知道是否可以
  • 为什么 java.lang.Throwable 是一个类?

    在java中以 able结尾的形容词是接口Serializable Comparable等等 那为什么是Throwable一类 如果这样的话 异常处理不是会更容易吗Throwable是一个接口吗 编辑 例如 异常类不需要扩展 Excepti
  • 带有类名的最后一个子选择器?

    有人可以解释为什么当我使用类名选择器时 last child 不起作用吗 这是不允许的吗 http jsfiddle net T2PgX 2 http jsfiddle net T2PgX 2 这是因为 last child您的列表中不是
  • 选项指令禁止的目录索引

    我正在使用 codeigniter 的 dompdf 插件 http codeigniter com wiki PDF Generation using dompdf http codeigniter com wiki PDF genera
  • 如何为形状添加阴影

    是否可以使用ggrough https xvrdm github io ggrough index html https xvrdm github io ggrough index html 对创建的形状进行着色geom sf 首选 或可能
  • 如何通过 Smack 使用 XMPP XEP-0184“消息传递收据”?

    您好 有什么方法可以做 android xmpp 客户端 它将能够获得消息接收确认 XEP 0184 我读到 smack 中有 XEP 0184 但正常的 smack 不适用于 android 或者我不能这样做 总是存在 SASL 身份验证
  • Python 2.7 NetworkX(使其具有交互性)

    我是 NetworkX 的新手 现在 我设法将所有节点连接到这个特定节点 接下来我想做的是使其具有交互性 例如能够通过使用光标拖动来移动每个节点 我知道我必须使用 matplotlib 但我不知道如何使用它 谁能帮我 我的代码是 impor
  • Flutter - 如何在页面上动态显示或隐藏应用程序栏

    我设计了一个屏幕 当来自导航抽屉和其他屏幕的意图时 该屏幕就会出现 现在我想在导航抽屉中隐藏应用程序栏 所以请指导我 下面是我的代码 导航屏幕代码 import dart convert import package flutter mat
  • 我的 Rackup 文件出了什么问题?

    当我尝试启动我的独角兽服务器时 我得到了下一个堆栈跟踪 无法理解rackup 文件有什么问题 为什么不可读 sites bck fatfreecrm home sites rvm gems ruby 1 9 2 p180 fatfreecr
  • ASP.NET 是否可以使用 Eval() 调用服务器标记内的方法?

    我有一个包含中继器的 aspx 页面 我可以使用 Eval 输出数据 但我想知道是否可以调用属于另一个类的方法并向其传递 Eval 的值 例如 在
  • 上传 iOS 应用程序时,应用程序加载器卡在“通过 iTunes 商店进行身份验证”

    我们已经尝试使用应用程序加载器向 iTunes 商店提交应用程序三天了 但一直卡在 通过 iTunes 商店进行身份验证 step 我们阅读了许多论坛 包括 stackoverflow 并尝试了建议的内容 制作新的配置文件 使用不同或多个版
  • idn2.h:没有这样的文件或目录

    我使用的是 64 位 Centos 6 6 想要安装 libidn2 devel 我试过yum install libidn2 devel但这不起作用 我尝试从互联网上的各个网站下载rpm 手动解决递归依赖关系 不是这样 很快我就陷入了依赖
  • 使用线程计算不同单词的数量

    目的是计算文件中不同单词的数量 更新 先前的代码已成功完成 现在我必须做同样的事情但是使用threads 天哪 我讨厌他们 此外我还想与信号量为了更好的流动 代码包含一些以前尝试中遗漏的额外内容 我正在尝试找出可以使用的内容 我一次可以读一
  • 如何在 MATLAB 中重新定义 .^ 运算符?

    如何重新定义指数函数 在 MATLAB 中 从 x y to sign x abs x y 您可以在 MATLAB 中重新定义算术运算符吗 可以 Should你在 MATLAB 中重新定义了算术运算符 呃 可能不是 为什么 因为 MATLA
  • SwiftUI .deleteDisabled() 未按预期工作

    iOS 16 刚刚发布 我正在尝试更新我的应用程序 在做这件事的时候 我偶然发现了一个问题 在 iOS 15 中 我有一个可以删除项目的列表 但这只有当 isEditing 变量为true 问题是 deleteDisabled 没有做我期望
  • java中使用zxing扫描多个条形码

    我需要从 tiff 读取 pdf417 条形码 图像上通常有多个条形码 这是我的代码 InputStream in null BufferedImage bfi null File files new File DIR listFiles
  • 如何使用 HTML、CSS 使背景 div 内弯曲? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望我的部分背景看起来像最后的图片所示 我该如何使用 css 来做到这一点 bg width 400px height 200px
  • 当我将 android.permission.UPDATE_DEVICE_STATS 添加到我的 app.error 时发生

    我开发了一个应用程序 需要获取android permission UPDATE DEVICE STATS允许 但是 当我将此权限添加到我的应用程序 AndroidManifest xml 文件时 出现此错误 权限仅授予系统应用程序 我可以
  • 为什么 FFMPEG 总是生成很大的 WebM 文件?

    我正在尝试将我的电影编码为 WebM ffmpeg i input MOV codec v libvpx quality good cpu used 0 b v 10k qmin 10 qmax 42 maxrate 10k bufsize