跳转到主要内容
技术原理5 分钟

CBR、VBR 与两遍编码:码率模式怎么选

同样是压缩,码率的「花法」完全不同:平均着花、按需花、还是先算好再花。三种模式没有高下之分,只有场景之分——搞清分工,压缩参数就不再是玄学。

CBR:平均主义

恒定码率(CBR)给每一秒分配相同的带宽:静止的画面用不完,复杂的画面不够用,浪费与不足并存。它换来的是可预测性——每一秒的数据量都一样,网络与播放器都好安排。

直播推流是 CBR 的主场:网络只给你固定的上行带宽,瞬时码率超带宽就卡顿掉帧。CBR 配合码率上限(VBV 缓冲机制)保证每一秒都在带宽之内——这是直播画质「稳但不够惊艳」的原因。

VBR 与 CRF:按需分配

可变码率(VBR)把带宽省给需要的画面:静止场景少花,高速运动与细密纹理多花。同一部片子里,码率曲线随内容起伏——这是下载的视频码率忽高忽低的原因,不是文件坏了。

CRF 是「质量导向」的 VBR:你不给码率,给一个质量目标,编码器自己决定花多少。这就是 CRF 压出来体积不可预知的根源——画质恒定,体积浮动。追求「画质稳定可预期」用它;追求「体积精确」它给不了。

两遍编码与反推码率

两遍编码(two-pass)先跑一遍分析(只记录每个场景的复杂度分布,不产出文件),第二遍根据分析结果精确分配总码率预算——把带宽花在最需要的地方。它适合「体积必须精确」的场景,代价是时间翻倍。

目标明确的场景有更直接的路:目标 MB × 8192 ÷ 秒数 − 音轨开销,一步反推出平均码率,单遍编码即可命中目标体积。站内的「按大小压缩」就是这么做的——微信 25MB、Discord 10MB 这类硬指标,公式直接给出答案,不需要先分析一遍。

常见问题