对于渲染,所花费的时间是非常不同的。
-b 3500K -minrate 0K -maxrate 8000K 需要 1 小时 17 分钟vb=3000k 需要 2.5 小时什么是vb 3000k以及它与什么不同-b 3500K -minrate 0K -maxrate 8000K?这些是可变比特率设置吗?
如果我改为-b 3500K -minrate 3500K -maxrate 3500K,那是恒定的比特率吗?
slh*_*hck 18
请阅读FFmpeg的文档,并运行ffmpeg -h full以获取选项列表。另外,看看我写的这篇文章,它显示了x264 和 x265 等编码器中速率控制模式之间的差异。
通常,以下是选项的含义:
-b:v(或-vb,相同)指定编码器使用的目标平均比特率:
-b<int>E..VA. 设置比特率(以比特/秒为单位)(从 0 到 INT_MAX)
-minrate 指定要使用的最小容差:
-minrate<int>E..VA. 设置最小比特率容差(以比特/秒为单位)。在设置 CBR 编码时最有用。否则用处不大。(从 INT_MIN 到 INT_MAX)
-maxrate指定最大容差。但是,正如文档所指出的,这仅与bufsize以下内容结合使用:
-maxrate<int>E..VA. 设置最大比特率容差(以比特/秒为单位)。需要bufsize设置。(从 INT_MIN 到 INT_MAX)
-bufsize<int>E..VA. 设置速率控制缓冲区大小(以位为单位)(从 INT_MIN 到 INT_MAX)
这仅对可变比特率编码有意义,其中编码器不使用恒定比特率或恒定质量模型,而是在解码器处使用虚拟缓冲区模拟传输。的-minrate/ -maxrate/-bufsize选项控制缓冲区大小。您通常只将这种模式用于流媒体,因为该技术将限制比特率,以免超过某个值,这会导致解码器缓冲区溢出或下溢。
总而言之,您有多种限制比特率的选项:
要设置 CBR 过程,您必须检查编码器提供的内容。通常,您无法实现“完美”的恒定比特率,因为编码器不会浪费比特。将-b:v、-minrate和-maxrate设置为相同级别将实现这一点,例如对于 libx264:
ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
Run Code Online (Sandbox Code Playgroud)
警告:这可能会导致难以编码的视频质量低下,并且会浪费比特。除非您绝对需要实现恒定速率输出,否则不要使用此选项。
为流媒体设置受限/可变比特率流程。-b:v 3500K -maxrate 3500K -bufsize 1000K例如,使用。显然,您必须根据上下文调整速率和缓冲区大小。缓冲区大小越大,允许的比特率变化就越大。
使用恒定质量目标并限制比特率仅用于捕捉峰值。例如,用于-c:v libx264 -crf 23 -maxrate 4M -bufsize 4M以可变比特率编码,目标 CRF 为 23,但将输出限制为最大 4 MBit/s。
| 归档时间: |
|
| 查看次数: |
42883 次 |
| 最近记录: |