Dat*_*ata 7 video encoder ffmpeg video-streaming bitrate
有谁知道 FFMPEG 中 bufsize 的公式以及它检查的速率是什么?
我似乎找不到任何具体的答案。
是不是:bufsize = 比特率/速率?
在计算中是否应该使用最大速率而不是比特率?
计算完成检查的速率的示例:
bitrate: 700Kbps
maxrate: 700Kbps
bufsize: 70Kb
700Kbps/70Kb = 10 sec
Run Code Online (Sandbox Code Playgroud)
是对的吗?对我来说,这听起来不太正确,因为较小的 bufsize 应该以较高的速率运行检查,而 10 秒似乎间隔太长。
公式需要倒转吗?
有人知道公式和单位的正确语法吗?
ffmpegbufsize只是 ffmpeg 根据转码的内容重新计算当前比特率之前处理的数据量(位数)。
您可能认为 bufsize 与关键帧类似。不同之处在于 bufsize 在处理 X 位数据后触发 ffmpeg 当前算法使用情况的重新评估。而与关键帧评估相关的命令(例如-g参数)则根据自上次关键帧评估以来已处理的帧数进行操作。
例如,假设您将 ffmpeg 设置为恒定比特率 (CBR) 模式,并将 -bufsize 设置为比特率的 2 倍。公式会很简单。每2帧,ffmpeg就会调整一次。另一方面,如果您使用 VBR 并将 -bufsize 设置为目标比特率的 2 倍,则 ffmpeg 调整其编码公式(和实际比特率)的准确频率将根据任何给定时刻的比特率而变化(因为它是可变的)。因此,频率(就处理的帧和/或位而言)将在整个编码过程中发生变化。
仅严格考虑比特率受限的编码模式(即非 CQ/CRF),-bufsize 目标的一个好的大概概念是使用 -maxsize 比特率的 1x - 2x 之间(或目标比特率,具体取决于编解码器和编码模式)。
编辑:进一步澄清一点....-bufsize与 结合使用来-maxsize准确确定何时应重新计算最大位数(bufsize 将指示何时发生)。
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |