Video Data

Which Video Format Is Actually Smallest?

“Convert to MP4 to save space” is common advice, and it’s mostly wrong — because MP4 isn’t a compression method at all. What actually sets the size is the codec inside the file. So we measured the three that matter — H.264, VP9 and AV1 — encoding two 720p clips across a full quality sweep and scoring each with VMAF, Netflix’s perceptual quality metric. Here is how much smaller the same video gets, at the same quality, just by changing the codec.

~60%
smaller — AV1 vs H.264 at the same VMAF
~40%
smaller — VP9 vs H.264
3.3→1.3 MB
same 10s 720p clip, H.264 vs AV1
0
effect the container (mp4/webm/mkv) has on size

Same quality, very different bitrate

Plotting VMAF against bitrate puts all three codecs on one picture. A line further to the left reaches the same quality for fewer bits. AV1 sits well left of everything; VP9 is clearly left of H.264; H.264 needs the most bits for any given quality. At a VMAF of 90 — visually very close to the original — VP9 comes in about 40% under H.264 and AV1 about 60% under.

20 40 60 80 100 0123 Bitrate (Mbps at 720p30) → smaller is better VMAF lkforge.com

H.264VP9AV1 — each dot is a CRF step; mean of two 720p clips.

The same clip, three sizes

Read off the curves at VMAF 90 and turn bitrate into a real file. For a 10-second 720p clip at that quality, the codec choice is the difference between a 3.3 MB file and a 1.3 MB one — identical footage, identical quality target, same container if you like. That’s why streaming services encode in VP9 and AV1: the bytes saved add up fast at their scale.

3.29 MB 2635 kbps H.264 1.99 MB 1590 kbps VP9 1.27 MB 1015 kbps AV1 lkforge.com

A 10-second 720p clip encoded to VMAF 90, by codec. Same quality target; the container is irrelevant.

The full sweep

Every codec at each quality setting (CRF), with the resulting bitrate at 720p30 and VMAF. Higher VMAF is closer to the original; 100 would be identical. The efficiency ordering is consistent across the whole range: AV1, then VP9, then H.264.

Codec CRF Bitrate VMAF
H.264 22 3,489 kbps 93.5
H.264 28 1,542 kbps 85.6
H.264 34 730 kbps 70.0
H.264 40 374 kbps 45.8
H.264 46 195 kbps 21.1
VP9 30 3,125 kbps 95.3
VP9 37 1,767 kbps 91.5
VP9 44 1,018 kbps 85.1
VP9 51 582 kbps 75.5
VP9 58 328 kbps 62.4
AV1 30 2,260 kbps 95.9
AV1 38 1,385 kbps 93.0
AV1 46 854 kbps 88.7
AV1 54 531 kbps 82.4
AV1 62 218 kbps 66.4

Bitrate is at 720p30; values are the mean of the two clips. There is a real catch not shown here: AV1 and VP9 encode much slower than H.264, so the size win costs CPU time.

Reproduce this

Two public clips, three encoders, one perceptual metric — the whole thing is a short script you can run.

Method Run it yourself →
  • Clips: Big Buck Bunny (animation) + Jellyfish (detailed live action), 720p, 10s each.
  • Encoders (single-pass CQ): x264 preset medium; libvpx-vp9 cpu-used 1; SVT-AV1 preset 6.
  • Metric: VMAF (libvmaf), with both streams normalised to CFR + yuv420p so frames pair correctly.
  • Reported: the mean of the two clips at each quality step.

The clips are H.264 masters, so these are transcodes — the ratios between codecs are the finding, not the absolute sizes, and 2-pass or higher resolutions shift the exact numbers. Want to convert your own video between these formats? The Video Tools do it in your browser, nothing uploaded.