← All articles

CBR or VBR: Is That Bitrate a Promise or an Average?

Two audio files, both reporting 192 kbps. One gives every second of audio exactly 192 kilobits whether it needs them or not. The other averages 192 across the file — spending 300 on a dense chorus and 90 on a quiet passage.

They are not the same file, they will not sound the same, and only one of those numbers is a promise about any particular moment.

What each one actually does

Constant bitrate (CBR) gives every frame the same budget. A silent passage gets the same bits as a cymbal crash. Simple, predictable, and slightly wasteful: the quiet parts are over-served and the busy parts under-served.

Variable bitrate (VBR) aims at a quality level instead and spends what each moment needs. At the same average, it generally sounds better, because the bits go where the ear notices them.

The trade-off is predictability, and it is not only theoretical:

  • Streaming and broadcast often want CBR, because the bandwidth required is known in advance.
  • Seeking is simpler in CBR: a position in the file maps directly to a position in time. Some older hardware players and some poorly written software still get VBR seeking wrong, which is the cause of the classic “the progress bar lies” complaint.
  • Storage and general listening favour VBR, which is why almost every music service encodes variable today.

How to tell which one you have, without listening

The file says so, in its own structure. Audio is stored as a series of frames, and the size of each frame is what changes between the two modes.

Measured on the same source encoded both ways: a constant file’s frames were 626 and 627 bytes — a single size, with the odd byte being padding. The variable version of the same audio ran from 104 to 835 bytes.

One subtlety makes this harder than it sounds, and it is worth stating because the obvious test fails. Comparing the 95th percentile of frame sizes against the 5th does not separate them: a variable encoder spends most of its frames near the top of its range, so that ratio came out 1.17 for VBR against 1.00 for CBR — close enough to be useless.

What does separate them is how many frames sit away from the middle at all. Constant files measured exactly 0.000 by that test. Variable files measured 0.197 to 0.501. No overlap, no threshold fiddling.

There is a second trap worth knowing if you ever test this yourself: a uniform source will not show the difference. Feed a variable encoder eight seconds of steady noise and it produces near-constant frames, because every moment genuinely needs the same bits. The test only means something on material that varies — which real music and speech always do.

Why it changes what the bitrate number is worth

If you are judging a file by its reported bitrate — and most automatic checks do — the mode decides what that number is evidence of.

On a CBR file, the number is a floor. Every second got that much.

On a VBR file, the number is an average, and averages hide their worst moments. A 192 kbps VBR file can contain passages encoded far below that. Usually that is fine — those passages are quiet or simple, which is why the encoder spent less. Occasionally it is not, and the number alone will never tell you.

Either way, the bitrate is a claim about how the file was written, not about what is inside it. A 320 kbps file made from a 128 kbps download carries 128 kbps of content in a container three times the size — and the only way to see that is to look at the audio itself, which is a separate story.

What to do with it

  • Delivering to a platform with a stated requirement — match what they ask for. Most accept both now; some broadcast and podcast specs still require constant.
  • Archiving or sending a master — use lossless. Neither mode is relevant then, and neither loses anything.
  • Judging a file someone sent you — read the mode, then ignore the number and measure the audio. The frequency range tells you what is really there; the loudness tells you whether it is deliverable; the bitrate mode only tells you how it was packaged.

Check one file free: DiffALL’s audio quality checker reports integrated loudness in LUFS against the streaming target, clipping with run length, the frequency range actually present, and whether a stereo file carries two channels or one twice — plus whether the bitrate is constant or an average, and which encoder wrote it. No sign-up.

Got the master as well? Compare the two files to hear exactly what the export changed, second by second.

Stop hunting for differences by hand. DiffALL spots every change between any two files — automatically.

Compare your files — free