为什么 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 用静态图像将 mp3 转换为 mp4

    我有x文件包含一个列表mp3我想转换的文件mp3文件至mp4文件带有static png photo 似乎这里唯一的方法是使用ffmpeg但我不知道如何实现它 我编写了脚本来接受输入mp3文件夹和一个 png photo 然后它将创建新文件
  • 如何在 Java/Eclipse 中使用特殊字符

    如何在 Java Eclipse 中使用 显示 或 等字符 当我尝试直接使用它们时 例如在源代码中 Eclipse无法保存文件 我能做些什么 编辑 如何找到 unicode 转义序列 问题是您使用的字符无法以文件设置的编码 Cp1252 表
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • ffmpeg:音频样本的字节顺序

    我使用 ffmpeg 的 avcodec 从我的 C 应用程序中的音乐文件中检索原始音频样本 对于我测试的文件 这些文件样本的字节序似乎是小字节序 但我想知道对于我尝试解码的所有文件是否总是如此 即来自 ffmpeg 的实现或至少它的体系结
  • Python。短语表示,如何改变?

    我不知道这个短语中存在的编码是什么 我也想知道这个问题的答案 主要是 我想改变我的措辞 例如 你好世界 变成你好 20世界 0A 老天啊 变成ol C3 A1 20mundo 0A 0A 我想要一个 python 解决方案 如果我有 gt
  • MySQL 将 ÅäÖ 视为 AAO?

    这两个查询给了我完全相同的结果 select from topics where name Harligt select from topics where name H rligt 这怎么可能 看起来mysql在搜索时会将 翻译成aao
  • 在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

    显示时收到 不兼容的字符编码 CP850 和 UTF 8 我的 ramaz 应用程序上的符号 我怎样才能摆脱这个错误 我的 head 标签中有 UTF 8 元标签 当我输入 用键盘输入符号 看 我已将以下代码放入我的 ruby 文件中 但它
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • ffmpeg concat:“不安全的文件名”

    尝试将一堆 mts 文件转换为一个大 mp4 文件 stephan rechenmonster mnt backupsystem archive2 Videos 20151222 PRIVATE AVCHD BDMV bin ffmpeg
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • Response.Write - Internet Explorer 中的文件名编码错误

    我使用以下代码将文件从服务器发送到客户端 Response AppendHeader content disposition attachment filename FileName Response ContentType MimeTyp
  • FFMPEG:使用具有复杂滤波器的视频滤波器

    我正在使用fluent ffmpeg用于对视频文件执行批量操作的 Node js 库 视频过滤器裁剪 16 9 输入 添加填充并将字幕刻录到填充中 在下一步中 我想使用复杂的滤镜来覆盖图像作为水印 ff input video mp4 ff
  • 如何将 MP3 音频文件读入 numpy 数组/将 numpy 数组保存到 MP3?

    有没有办法从 MP3 音频文件中读取 写入 MP3 音频文件numpy具有类似 API 的数组scipy io wavfile read https docs scipy org doc scipy 0 14 0 reference gen
  • 使用 xuggle 将 mp3 转换为 wav 出现异常

    我正在尝试将 mp3 转换为 wav 代码在这里 String mp3 F work pic2talk38512 mp3 String wav F work pic2talk38512 wav TranscodeAudioAndVideo
  • 转换为 JPEG 时 HEIC 切片损坏

    我在将 HEIC 图像转换为 jpeg 时遇到问题 HEIC 文件是使用运行最新 iOS 公共测试版的 iPhone 拍摄的图像 我正在使用诺基亚提供的库 https github com nokiatech heif 要解析文件并从 HE
  • Xuggler 未转换 .webm 文件?

    我只是尝试使用 Xuggler 将 mov 文件转换为 webm 这应该可以工作 因为 FFMPEG 支持 webm 文件 这是我的代码 IMediaReader reader ToolFactory makeReader home use
  • chrome 如何建立正确的字符编码?

    我最近一直在使用很多字符集 在尝试为随机网页建立正确的字符集时发现了很多问题 字符集可以在html文档的标题中设置 也可以在节 多次或有时声明被省略 尽管存在这些问题 chrome 每次都在设置最佳字符集方面做得很好 我尝试过搜索来源 ht
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • Intellij IDEA 2016.3默认属性文件编码不起作用

    我已在 Intellij IDEA 2016 3 中将属性文件的默认编码设置为 ISO 8859 1 然后创建属性文件 但文件编码仍然是 UTF 8 任何想法 或者这应该是一个问题 Updates 将项目和系统默认编码更改为 ISO 885

随机推荐

  • 符号表有限制吗?

    我一直在研究一些加载 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