跳转到主要内容
参数调优8 分钟

视频压缩的 CRF:原理、取值与和码率模式的取舍

CRF(Constant Rate Factor,恒定质量因子)是 x264/x265 编码器的质量优先模式:你给一个目标质量,编码器按画面复杂度自动分配码率。同一画质目标下,CRF 模式的体积通常优于固定码率模式,代价是输出体积不可预知。

CRF 在做什么

人眼对画面瑕疵的感知不均匀:静态场景中轻微的模糊立刻可见,剧烈运动中的瑕疵却很难察觉。CRF 利用这一点,给静态画面多分配码率、给剧烈运动画面少分配码率,把钱花在刀刃上。

固定码率模式(CBR/ABR)正好相反:给每秒同样的码率预算,简单场景浪费、复杂场景不足。这就是同体积下 CRF 成片通常更干净的原因。

取值对照

CRF画质典型用途
0数学无损中间片、存档母版
18视觉无损(普遍共识起点)高质量留存
23x264 默认值,肉眼接近无损一般压制
26轻微损失,体积明显下降网页分享(本站默认)
30 以上可见损失预览、草稿

经验值:同一片源,CRF 每降低 6,输出码率约翻倍。CRF 23 与 CRF 17 的体积差约一倍,而多数屏幕上画质差异难以察觉。

preset 与 CRF 的关系

preset 控制编码耗时:从 ultrafast 到 veryslow 共八档,越慢同画质下体积越小,代价是编码时间成倍增加。它不改变画质目标,只改变编码器的搜索精度。

浏览器环境(ffmpeg.wasm)的算力有限,本站默认 veryfast:这是速度与体积的平衡点。从 veryfast 换到 slow,体积大约再省 10%,但编码时间增加 3-5 倍,本地处理场景不划算。

CRF 的边界:不保证体积

同一个 CRF 值,动画片源与手持夜景片源的输出体积可相差数倍——噪点多的画面对编码器而言全是「高频细节」。CRF 锁定的是画质,不是体积。

需要精确控制体积的场景(微信 25MB、邮件附件、平台投稿上限),应使用目标码率模式:按「目标体积 × 8 ÷ 时长」反推码率,输出体积偏差可控制在 5% 以内。

常见问题