跳转到主要内容
How it works 5 min read

CBR, VBR and Two-Pass: Picking a Rate Mode

Same compression, different ways to spend the bitrate budget: evenly, by need, or with a plan made in advance. No mode is best — each belongs to a scenario. Once the division is clear, compression settings stop being folklore.

CBR: spend it evenly

Constant bitrate gives every second the same budget: static scenes waste it, complex scenes run short. The trade is predictability — every second weighs the same, so networks and players can plan around it.

Live streaming is CBR’s home turf: the uplink gives you fixed bandwidth, and any spike above it stalls the stream. CBR plus a rate ceiling (VBV buffering) keeps every second inside the pipe — which is why live picture is "steady but never dazzling".

VBR and CRF: spend by need

Variable bitrate saves the budget for where it matters: static scenes spend little, high-motion and dense-texture scenes spend much. The bitrate curve rises and falls with content — that downloaded file with fluctuating bitrate is not broken, it is working.

CRF is quality-directed VBR: you supply no bitrate, only a quality target, and the encoder decides the spend. That is exactly why CRF output size is unpredictable — quality stays constant, size floats. Use it when you want predictable quality; it cannot give you a predictable size.

Two-pass and rate back-calculation

Two-pass encoding runs a first pass that only analyzes (recording each scene’s complexity, producing no file), then a second pass that distributes the total budget precisely using that map. It fits "size must be exact" scenarios at twice the encode time.

When the target is known there is a shorter path: target MB × 8192 ÷ seconds − audio overhead gives the average bitrate in one formula, and a single encode hits the size. That is how compress-to-size works here — WeChat 25MB, Discord 10MB: the hard number goes in, the formula answers, no analysis pass needed.

Frequently asked questions