What Is CRF?
CRF stands for Constant Rate Factor. It is an encoding mode used by x264, x265, libvpx, and other modern video encoders. Instead of targeting a specific file size or bitrate, CRF targets a consistent visual quality level across the entire video.
When you encode with CRF, the encoder analyzes each frame and asks: "How many bits does this frame need to achieve quality level X?" Simple frames (static shots, solid colors, slow pans) need fewer bits. Complex frames (fast action, detailed textures, confetti explosions) need more bits. The result is a variable bitrate stream where every frame looks equally good, regardless of scene complexity.
The CRF scale for H.264 (x264) ranges from 0 to 51:
- CRF 0 — Mathematically lossless. Every pixel is preserved exactly. Files are enormous (50–100x larger than CRF 23).
- CRF 18 — Visually lossless. No human can reliably distinguish it from the original, even on a professional monitor. This is the practical quality ceiling.
- CRF 23 — FFmpeg's default. Excellent quality that satisfies the vast majority of viewers. VMAF scores of 93–96 out of 100.
- CRF 28 — Good quality. Artifacts become noticeable on careful inspection but acceptable for web delivery and casual viewing.
- CRF 51 — Maximum compression, minimum quality. Unwatchable blocky mess. Useful only as a theoretical endpoint.
CRF is not a bitrate target. You do not set a target file size. You tell the encoder "give me this quality" and it figures out how many bits are needed. The file size is a byproduct, not a goal. This is fundamentally different from constant bitrate (CBR) or average bitrate (ABR) encoding, where you specify the size and quality varies.
CRF 23 at medium preset: VMAF 93–96 quality score. Each +1 CRF reduces bitrate approximately 10–12%. Each +6 CRF roughly halves the file size.
CRF Scale Explained
The CRF scale is logarithmic: small changes at the low end (high quality) have a larger perceptual impact than the same change at the high end. The most useful rule of thumb: +/-6 CRF roughly halves or doubles the file size. More precisely, each +1 CRF reduces the bitrate by approximately 10–12%.
The practical range is CRF 18 to 28. Below 18, you're spending exponentially more storage for quality improvements no human can perceive. Above 28, compression artifacts become increasingly visible — blocking, banding, loss of fine detail, and smearing on motion.
Here is a reference table for a typical 1-minute 1080p 30fps clip (real-world source, medium motion complexity):
| CRF | Quality Description | ~1 min 1080p | ~VMAF Score | Relative Size |
|---|---|---|---|---|
| 0 | Mathematically lossless | ~3–6 GB | 100 | 50–100x |
| 18 | Visually lossless | ~120 MB | 98–99 | 2x |
| 20 | Excellent, near-lossless | ~85 MB | 97–98 | 1.4x |
| 23 | Excellent (FFmpeg default) | ~60 MB | 93–96 | 1x (baseline) |
| 26 | Good, minor artifacts visible | ~40 MB | 88–92 | 0.67x |
| 28 | Good for web delivery | ~30 MB | 84–89 | 0.5x |
| 33 | Minimum acceptable | ~15 MB | 72–80 | 0.25x |
| 40 | Low quality, visible blocking | ~6 MB | 50–65 | 0.1x |
Note: These sizes are approximate. Actual file sizes vary enormously based on video content. A static talking-head video at CRF 23 might be 20 MB per minute, while a fast-action sports clip could be 100 MB per minute at the same CRF. The CRF value guarantees consistent quality, not consistent size.
Recommended CRF Values by Use Case
Different scenarios have different quality requirements. Using CRF 18 for a social media story is wasteful; using CRF 33 for a professional portfolio is unacceptable. Here are evidence-based recommendations:
| Use Case | CRF Range | Reasoning |
|---|---|---|
| Archival / master copy | CRF 18 | Visually lossless. Maximum quality for long-term storage. Large files but no perceptible degradation. |
| YouTube upload | CRF 18–20 | YouTube re-encodes everything. Higher source quality = less generation loss after YouTube's compression. |
| General use (default) | CRF 23 | FFmpeg's default for x264. Excellent balance of quality and size. Indistinguishable from original for most viewers. |
| Web / social media | CRF 26–28 | Smaller files for faster loading. Quality still good on phone screens and embedded web players. |
| Email attachment | CRF 28–33 | Must fit under 25 MB (Gmail). Resolution reduction usually more effective than high CRF. |
| Minimum acceptable | CRF 33 | Visible artifacts but content is still watchable. Useful for previews, drafts, or bandwidth-constrained delivery. |
For most people, CRF 23 is the right choice. It is FFmpeg's default for a reason: it produces files that are 50–70% smaller than the original camera output with no visible quality loss for typical viewing on screens up to 27 inches. If you are unsure, start with CRF 23 and only adjust if the file is too large (increase CRF) or you need archival quality (decrease to CRF 18).
CRF by Resolution
Higher resolutions contain more pixels per frame, which means more data to encode. However, higher resolution also means each compression artifact covers a smaller percentage of the screen. This allows slightly higher CRF values at higher resolutions without visible degradation — the artifacts are smaller relative to the total image.
| Resolution | Pixels | CRF Range | ~1 min Size (CRF mid) |
|---|---|---|---|
| 480p (854×480) | 0.4 MP | 18–22 | ~15 MB |
| 720p (1280×720) | 0.9 MP | 19–23 | ~30 MB |
| 1080p (1920×1080) | 2.1 MP | 20–24 | ~60 MB |
| 1440p (2560×1440) | 3.7 MP | 21–26 | ~100 MB |
| 4K (3840×2160) | 8.3 MP | 22–28 | ~200 MB |
The key insight: a CRF 28 encode at 4K can look as good as CRF 23 at 1080p because each artifact block covers a proportionally smaller area of the frame. This is especially true for 4K content viewed on 4K screens at normal viewing distances, where the eye cannot resolve individual pixel-level artifacts.
Conversely, low-resolution video (480p) demands lower CRF values because artifacts are proportionally larger and more obvious. At 480p, the difference between CRF 23 and CRF 28 is easily visible even on a phone screen.
CRF vs Fixed Bitrate
CRF and fixed bitrate are two fundamentally different approaches to video encoding. Understanding when to use each one is critical for optimal results.
CRF (Constant Quality): You specify the quality level. The encoder determines the bitrate needed for each frame to achieve that quality. The output has variable bitrate — complex scenes get more bits, simple scenes get fewer. File size is unpredictable but quality is consistent. Best for: offline encoding, file storage, uploads to platforms that re-encode.
Fixed Bitrate (CBR/ABR): You specify the target bitrate. The encoder distributes that budget across all frames. Simple scenes look great (surplus bits). Complex scenes may suffer (insufficient bits). File size is predictable but quality varies scene-to-scene. Best for: live streaming, bandwidth-constrained delivery, broadcast.
| Aspect | CRF (Constant Quality) | Fixed Bitrate (CBR/ABR) |
|---|---|---|
| You control | Quality level (CRF value) | Bitrate (kbps / Mbps) |
| Encoder decides | Bitrate per frame | Quality per frame |
| Quality | Consistent across all scenes | Varies by scene complexity |
| File size | Unpredictable (depends on content) | Predictable |
| Encoding passes | Single pass | 1-pass or 2-pass |
| Best for | Files, uploads, archival | Streaming, broadcast, bandwidth caps |
| Efficiency | Optimal — no wasted bits | May waste bits on simple scenes |
For the vast majority of video conversion tasks — converting iPhone MOV to MP4, preparing videos for social media, archiving home videos — CRF is the better choice. It produces smaller files at the same visual quality because it doesn't waste bits on scenes that don't need them. Fixed bitrate is only necessary when you have a hard bandwidth or file size constraint that must be met exactly.
Two-pass ABR encoding is a middle ground: the first pass analyzes the video, the second encodes with optimal bit allocation. It can approach CRF quality while hitting a target file size, but it takes twice as long to encode. If you need a specific file size, two-pass ABR is better than single-pass CBR.
Our Converter Settings
When you convert a video on Convertio.com, we use the following settings:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 192k -movflags +faststart output.mp4
Here is what each parameter does and why we chose it:
-c:v libx264— H.264 video codec. The most compatible video codec in existence. Every device, browser, and platform supports H.264 playback.-crf 23— Constant Rate Factor 23. VMAF scores of 93–96. Visually indistinguishable from the original for the vast majority of viewers. Files are 50–70% smaller than typical camera output.-preset medium— Encoding speed preset. Medium provides the best balance of encoding speed and compression efficiency. Slower presets (slow, veryslow) produce slightly smaller files at the same quality but take 2–10x longer. Faster presets (fast, veryfast) sacrifice compression efficiency for speed.-c:a aac -b:a 192k— AAC audio at 192 kbps. Transparent audio quality for stereo content. AAC at 192 kbps is overkill for most video audio, ensuring no audio quality concerns.-movflags +faststart— Moves the MP4 metadata (moov atom) to the beginning of the file. This enables instant web playback — the browser can start playing before the entire file downloads.
Why CRF 23 and not lower? The difference between CRF 18 and CRF 23 is approximately 2x file size for a quality improvement that is invisible to most viewers on consumer displays. CRF 23 is the "sweet spot" where further quality increases provide diminishing returns relative to storage cost and upload time.
Our converter also detects when remuxing is possible. If your MOV file already contains H.264 video and AAC audio, we use -c copy instead of re-encoding — this is instantaneous and involves zero quality loss. Re-encoding only happens when the source uses a codec that requires conversion (ProRes, HEVC on certain targets, etc.).
For a deeper understanding of the container formats involved, see our MP4 vs MKV vs MOV comparison guide.