Reference

Constrained VBR (cVBR)

cVBR is variable bitrate MP3 encoding with a stricter lower bitrate boundary. It keeps the VBR idea, but reduces how far the encoder is allowed to drop.

What it is

VBR normally lets the encoder choose lower or higher MP3 frame bitrates according to the audio. That flexibility is one reason VBR can be efficient: easy sections can use fewer bits and difficult sections can use more.

cVBR keeps that quality-based behaviour, but adds a stricter minimum bitrate control. In the lamemp3.co.uk branch, the option is --vbr-min-strict.

The strict floor

In ordinary LAME VBR, a minimum bitrate setting may not behave as an absolute frame-by-frame floor in every situation. A low-complexity or near-silent frame may still be encoded below the requested minimum.

cVBR changes that behaviour by treating the bitrate supplied with -b as a hard lower boundary when --vbr-min-strict is used.

Command ideaBehaviour
-V0High-quality VBR with no requested minimum floor.
-V0 -b 192VBR with a requested minimum, but not necessarily strict in all observed frames.
-V0 -b 192 --vbr-min-strictcVBR: VBR with a strict 192 kbps lower floor in the branch build.

Why it exists

The motivation is conservative bitrate control. Some users prefer not to see very low-bitrate frames inside an otherwise high-quality VBR encode, especially when they worry about sudden bitrate swings, silence handling, or difficult transitions.

cVBR therefore sits between ordinary VBR freedom and fixed-bitrate thinking: it preserves local variation, but gives the user firmer boundaries.

What it does not prove

cVBR should not be described as a magic quality mode. A normal high-quality LAME VBR encode may already be transparent for many listeners and many sources.

The strongest evidence for cVBR is behavioural: it changes bitrate allocation and prevents below-floor frames in the tested branch behaviour. Listening claims should be made carefully and, ideally, tested with blind ABX comparisons.

Commands

lame -V0 -b 192 --vbr-min-strict input.wav output.mp3
lame -V2 -b 160 --vbr-min-strict input.wav output.mp3