Rate Control Simulator
see how CRF adapts bitrate to complexity while CBR holds a fixed target at the cost of quality variance
Algorithmic Bitrate Allocation Dynamics 🖖
Rate control within video encoding operates as a complex optimization algorithm balancing target bitrates against fluctuating spatial complexity. Constant Bitrate (CBR) applies rigid constraints, risking quantization artifacts, whereas Constant Rate Factor (CRF) algorithmically modulates data allocation to maintain a steady objective quality metric. The mathematical modeling of encoder buffers prevents transmission overflow, strictly dictating the allocation of discrete data blocks over time.
Set the quality or set the size 🖖
Rate control is really a choice about which knob you fix. With CRF you pick a quality level and let the file size land wherever the footage demands. With CBR you fix the bitrate and let quality rise and fall with the scene. A good rule of thumb: choose CRF for downloads and archives where size can vary, and CBR for live streaming or broadcast where the bandwidth is fixed.
CRF quietly lowers quality on busy scenes 🖖
Despite the name, 'constant' quality is not truly constant. Encoders like x264 deliberately let quality sag on the most complex frames, controlled by a quantizer-curve-compression factor (qcomp, default 0.6) that hands busy scenes fewer bits per pixel than a strictly constant quality would. It works because fast motion masks fine detail, so your eye rarely catches the artifacts hiding inside the action.
Example problems
- action - Action movie: CRF bitrate spikes 3× during fight sequences; CBR quality drops when buffer runs out
- screen recording - Screen recording: CRF near-zero bits on static UI; CBR quality crashes when video playback begins
- sports - Sports with 1-frame buffer: sustained high complexity keeps CBR quality under constant pressure
- documentary - Documentary at CRF 30: moderate bitrate; isolated complexity spikes visible in both modes