微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何了解h264_nvenc编码器的有效质量?

如何解决如何了解h264_nvenc编码器的有效质量?

我力求确定h264_nvenc视频编码器的各种cq(“恒定质量”)值的最终产品质量。

要通过ffmpeg使用h264_nvenc编码器并达到目标质量,请遵循链接锚的最后一段Nvidia's documentation中的说明。

我指定了可变比特率速率控制模式(rc = vbr_hq)和目标质量(cq = )。这应该足以测试各种cq值。故事应该就此结束。

但是,对于任何cq值,它只能输出非常大尺寸的相同完美质量的视频。 (使用cq = 1,cq = 20和cq = 51都输出具有相同哈希值的文件。)

根据文档,我还可以指定maxBitRate(maxrate = )。如果我未指定最大值,则文档会指出:

如果未指定maxBitRate,则编码器将使用所需的位数以达到目标质量。

但这不是我观察到的行为。我看到编码器使用的比特数越多越好,而不是需要的比特数越多。所得视频的总体比特率约为100Mb / s。将源视频加倍。

如果我确实设置了最大速率,则编码器会观察到它。但是,如果必须为每个CQ值正确设置比特率,那么CQ值的意义是什么?我只需设置cq = 1并测试各种比特率,然后再将其应用于特定视频即可。

是否存在一些警告或输出,指出比特率不足以达到我未看到的目标质量?至少这可以让我蛮力。

还是我误解了这些设置之间的关系?

解决方法

恒定质量完全按照其说的做,它保持恒定的可感知质量水平。它将改变压缩量以保持所需的质量。生成的文件大小与此用例无关。

添加最大速率用于避免比特率峰值,例如,当您通过网络发送视频时,通常您知道该限制是多少。

如果您想评估视频压缩质量,可以使用VMAF之类的算法来命名。

更多阅读内容:

CRF Guide

Understanding Rate Control Modes

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。