![视频编码比特率如何影响持续时间以及为什么?](https://linux22.com/image/1400944/%E8%A7%86%E9%A2%91%E7%BC%96%E7%A0%81%E6%AF%94%E7%89%B9%E7%8E%87%E5%A6%82%E4%BD%95%E5%BD%B1%E5%93%8D%E6%8C%81%E7%BB%AD%E6%97%B6%E9%97%B4%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
将未压缩的视频编码为更高比特率是否比编码为更低比特率需要更长的时间?
如果是这样,为什么——似乎编码器应该不需要那么努力,因为它不需要那么努力地压缩文件?
如果不是,为什么——质量越高不是意味着编码器要做的工作越多吗?
我就是无法理解这一点。
答案1
有损编码基本上是通过各种算法实现的压缩。让我们考虑一下极端情况,然后从中推断出您的问题的答案。
想象一下,您的输入视频应该以最佳质量进行编码。这到底意味着什么?好吧,我们只需按原样获取每个像素,然后就这样存储。我们需要多少时间才能做到这一点?几乎不需要。这将是最快的。
然后,您可以继续尝试通过仅对帧之间的相对差异进行编码来最小化帧之间的差异。您可以预测帧乙从框架A然后存储减去预测后的残差乙。这样质量不变,但处理时间增加。文件也会小很多。
如果您想进一步减小文件大小怎么办?现在,不同的量化和优化算法开始发挥作用。您可以计算帧区域中的空间和时间细节量,然后动态调整视频中该部分的相对质量,使其具有一定的质量水平。这就是x264中的CRF模式在这种情况下,如果您想要高质量,编码器不需要做太多的事情——简单地说,它不需要“丢弃”那么多。
基本上,当你告诉编码器它不需要那么努力地优化质量时,它就会更快。
但也许我们应该做一个小测试。我取了一段 30 秒的电影样本,并使用服务器上的各种 CRF 设置用 x264 对其进行编码。以下是所需时间:
比特率相同: