名称
CRF(Constant Rate Factor) / CQF(Constant Quality Factor) 恒定质量因子.
定义
CRF 是码率控制 rate control 的一种,是x264和x265编码器的默认质量(和码率控制)设置,也可用于libvpx.
QP 是把某个量化值作为目标,而 bitrate 是把某个档案大小作为目标,CRF 则是把某个 “品质” 作为目标.
CRF与恒定QP ( Const QP, CQP) 类似,但追求主观感知到的质量恒定,瞬时码率也会随场景复杂度波动.
构想是让 CRF n提供的视觉品质与 QP n相同,只是档案更小一点;CRF 值的度量单位是位元率系数 (ratefactor).
越小的 CRF 越可能带来更高的视频质量,随之文件体积也会变大;CRF 越大,视频压缩率越高,但视频质量越低.
与码控一样,CRF 对快速运动或细节丰富的场景会适当增大量化失真(因人眼不敏感),而对静止或平坦区域则减少量化失真.
各codec的CRF取值范围、默认值和建议值见下表。
codec | 取值范围 | 默认值 | 建议值 |
---|---|---|---|
x264 | [0, 51] | 23 | [18, 28] |
x265 | [0, 51] | 28 | 1080p HD视频建议31 |
VP9 | [0, 63] | - | [15, 35] |
下表为 CRF 与码率的对应关系
另一个 CRF 与码率的关系图为
使用
ffmpeg 在 x264 中指定 CRF 为23
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
适用场景
离线视频存储、档案备份
参考:
- 视频编码-码率控制CQP/CRF/ABR/CBR/VBV
- Understanding Rate Control Modes (x264, x265, vpx)
- CRF Guide (Constant Rate Factor in x264, x265 and libvpx)
- x264编码参数大测试:01 subme与crf(a)
- mediacoder固定质量CRF
- 机器学习如何帮助Youtube实现高效转码?