与ffmpeg中的crf和qp有什么区别?

时间:2016-11-18 02:54:01

标签: ffmpeg

在浏览Google之后,我遇到了关于h264编码的这个页面并发现了关于qp的内容。 https://trac.ffmpeg.org/wiki/Encode/H.264

我的问题是:与crf和qp有什么不同?是否更好地使用qp而不是crf整体,还是只有使用qp 0才能获得最佳无损?如果首选,qp是否具有已知的合理设置?到目前为止,我知道crf的默认值为23,而18是质量的明显优选增加,虽然我不明白为什么18如果更好的明智无损则不会违约。最后,改变其中任何一个都会导致与非ffmpeg玩家不兼容或只是qp?

顺便说一下,我正在从webm转换为mp4。

我打算测试crf 23和18并选择哪个最好,但我似乎无法找到关于此比较或qp的任何具体信息。

3 个答案:

答案 0 :(得分:5)

直接设置量化参数QP时,它在整个编码过程中保持不变,每个帧将根据设定值进行压缩。

恒定速率因子CRF允许QP上升到具有大量运动的帧或下降静止帧,从而在保持压缩效率的同时产生一致的感知质量。

This article解释得非常好。

CRF默认值只是默认值,您需要选择适合您的视频类型的值。 FFmpeg包含PSNRSSIM等过滤条件,可让您比较结果。

答案 1 :(得分:1)

恒定QP模式在有限的情况下很有用。

我有一些来自Subnautica的视频游戏录音。当我穿过大门时,虫洞效应非常混乱,CRF模式会降低质量。不幸的是,这会导致HUD元素变得模糊。为了保持HUD的清脆度,我从CRF切换到恒定的QP模式。我想可以改进H.264编码器的未来版本,以便在存在不变像素的块中保持QP清晰,但今天不存在。

对于中间编码,恒定QP可能是一个不错的选择(例如将屏幕捕获从可变帧速率转换为恒定帧速率,因为没有设计混合器以正确处理可变帧速率内容),您希望保持质量并且可以负担得起额外的磁盘空间。

在大多数素材中,CRF会为您节省一些磁盘空间或带宽。但在像我这样的少数情况下,我更喜欢不断的QP。

答案 2 :(得分:0)

只是为了记录,-qplivx264 编解码器(CUDA 支持的编码)都支持 h264_nvenc

CUDA 忽略了 -crf,这让我一直注意到。