Constant quality, not constant size

Most video encoders can be told either how many bits to use per second (bitrate) or how good the picture should look (quality). CRF is the second kind. The encoder spends more bits on complex scenes and fewer on simple ones, so quality stays even through the video, and the file ends up whatever size that takes.

What the numbers mean

CRF (H.264)What to expect
0Lossless. Huge files; rarely useful for sharing.
17–18Visually close to lossless for most viewers.
21–23High quality; 23 is the encoder's default.
24–28Good for sharing and messaging; fine detail softens towards 28.
30+Visible blockiness, especially in motion and dark scenes.

A widely used rule from the FFmpeg documentation: changing CRF by +6 roughly halves the bitrate, and −6 roughly doubles it. The exact effect depends on the content.

Our presets

Video Compressor's High quality, Balanced and Smaller file presets use CRF 21, 24 and 28. Under Advanced settings you can pick any value from 18 to 35. Resolution matters as much as CRF: a 720p video at CRF 24 is usually smaller and looks cleaner on a phone than a 1080p video at CRF 30.

Encoding speed is a second, separate dial

H.264 also has speed presets (from "ultrafast" to "veryslow"). At the same CRF, a slower preset finds more efficient ways to encode the same picture, so the file is smaller at similar quality; it just takes longer. Our Faster / Balanced / Slower options map to the encoder's veryfast, faster and medium presets.

CRF or target size?

  • Use CRF when quality is what you care about and any reasonable size is fine.
  • Use a target size when a platform rejects files above a limit. The encoder then calculates a bitrate from the clip's length instead; quality is whatever fits.