H.264 vs H.265 vs AV1, in short: re-encoding three of our own short clips at matched quality (VMAF), AV1 files averaged 72% of the H.264 size, H.265 84% and VP9 85%. AV1 saved 53% on a detailed product clip but only 6% on a talking head, where H.265 was 4% larger. H.265 took 2.66× and AV1 3.14× as long to encode.
More on this topic: Video formats, codecs and numbers, every guide in one place.
These are small, short, already-compressed social clips, not 4K film masters, so read the numbers as a guide for Reels, Shorts, TikTok and file sharing. The method, every result and the limits are below, and the raw data and script can be downloaded from this page.
The short answer
On our clips, at matched VMAF: AV1 (SVT-AV1, preset 8) averaged 72% of H.264's file size (range 47-94%), H.265 (x265 medium) 84% (57-104%) and VP9 85% (58-106%). Encoding took 2.66× (H.265), 3.14× (AV1) and 9.51× (VP9) as long as x264 medium. For uploads, export H.264; use AV1 or H.265 when file size matters and the player supports it.
Key takeaways
- At matched quality, AV1 averaged 72% and H.265 84% of the H.264 file size across our three clips.
- The saving depends on the clip: 53% (AV1) on a detailed product clip, 6% on a talking head, where H.265 was 4% larger than H.264.
- The same CRF number means different quality in each codec: H.264 CRF 23 scored VMAF 96.92 on our talking-head clip, H.265 CRF 26 scored 94.07 and AV1 CRF 38 scored 94.18.
- H.265 took about 2.7×, AV1 at preset 8 about 3.1× and VP9 about 9.5× as long to encode as H.264 on an Apple M1.
- Audio matters on small files: 128 kbps AAC was 15.8% of our talking-head file at H.264 CRF 23.
Which is smaller: H.264, H.265 or AV1?
AV1 made the smallest files at the same quality on all three of our clips, H.265 and VP9 came next, and H.264 was largest on two clips out of three. The table compares MB per minute of video (no audio) at one VMAF score per clip, the score all four codecs reached within the CRF values we tested (the method section explains how we picked it).
| Clip | Matched VMAF | H.264 MB/min | H.265 | AV1 | VP9 |
|---|---|---|---|---|---|
| Talking-head UGC demo | 94 | 3.39 | 3.53 (104%) | 3.18 (94%) | 3.59 (106%) |
| AI product clip (mug) | 90 | 4.49 | 2.57 (57%) | 2.10 (47%) | 2.61 (58%) |
| AI product clip (serum) | 95 | 2.52 | 2.24 (89%) | 1.92 (76%) | 2.25 (89%) |
| Average vs H.264 | 100% | 83.5% | 72.3% | 84.5% |
The detailed 960×540 mug clip, which also had the highest source bitrate, gained most: H.265 needed 57% and AV1 47% of the H.264 size. On the 17-second talking-head clip the newer codecs barely helped: AV1 was 94% of H.264 and H.265 104%. A static face against a plain background is already cheap to encode, so there is little left for a better codec to save. Sizes at matched quality are interpolated between the two nearest measured CRF values on a log scale; we did not extrapolate.
How we tested
We took three clips we made ourselves and re-encoded each one at 11 settings with FFmpeg, video only, then compared every output with its source using VMAF and SSIM.
| Clip | Size | Frame rate | Length | Source video | Audio |
|---|---|---|---|---|---|
| Talking-head UGC demo | 540×982 | 24 fps | 17.0 s | H.264 High, 476.7 kbps | Yes (AAC) |
| AI product clip (mug) | 960×540 | 24 fps | 5.0 s | H.264 High, 1382 kbps | No |
| AI product clip (serum) | 560×688 | 16 fps | 5.1 s | H.264 High, 407.4 kbps | No |
- Machine: Apple M1, 16 GB RAM, 8 cores, macOS 27.0.1.
- Software: ffmpeg version 7.1 with x264 r3108, x265 4.1, SVT-AV1 2.3.0, libvpx 1.15.0 and libvmaf 3.0.0.
- Settings: libx264 CRF 18, 23 and 28 (preset medium); libx265 CRF 20, 26 and 30 (preset medium); libsvtav1 CRF 30, 38 and 45 (preset 8); libvpx-vp9 CRF 31 and 37 (-b:v 0). All 8-bit 4:2:0, MP4, no audio.
- Quality: VMAF with libvmaf's default model (vmaf_v0.6.1), mean over all frames, and FFmpeg's SSIM filter (All). The reference is the source file itself.
- Speed: wall-clock time, median of 3 runs, FFmpeg's default threading.
- Matched quality: for each clip, the whole VMAF score nearest 94 that all four codecs reached: 94 for the talking head, 95 for the serum clip and 90 for the mug clip, where AV1's best tested setting (CRF 30) scored 91.05.
The commands, with in.mp4 as the source:
| Codec | Command |
|---|---|
| H.264 | ffmpeg -i in.mp4 -map 0:v:0 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -an -movflags +faststart out.mp4 |
| H.265 | ffmpeg -i in.mp4 -map 0:v:0 -c:v libx265 -crf 26 -preset medium -tag:v hvc1 -pix_fmt yuv420p -an -movflags +faststart out.mp4 |
| AV1 | ffmpeg -i in.mp4 -map 0:v:0 -c:v libsvtav1 -crf 38 -preset 8 -pix_fmt yuv420p -an -movflags +faststart out.mp4 |
| VP9 | ffmpeg -i in.mp4 -map 0:v:0 -c:v libvpx-vp9 -crf 31 -b:v 0 -pix_fmt yuv420p -an -movflags +faststart out.mp4 |
| VMAF | ffmpeg -i out.mp4 -i in.mp4 -lavfi "[0:v]setpts=PTS-STARTPTS[d];[1:v]setpts=PTS-STARTPTS[r];[d][r]libvmaf=log_fmt=json:log_path=vmaf.json" -f null - |
| SSIM | ffmpeg -i out.mp4 -i in.mp4 -lavfi "[0:v]setpts=PTS-STARTPTS[d];[1:v]setpts=PTS-STARTPTS[r];[d][r]ssim" -f null - |
Download the script and the raw results (JSON). The script runs offline on any folder of MP4 files.
How big is each file at each CRF?
Here is every encode: MB per minute of video, average bitrate, size compared with the source's video stream, VMAF (0-100, higher is better) and SSIM (1.0 is identical). Lower CRF means higher quality and a bigger file in every codec, but the scales differ, so the same number does not mean the same quality.
Talking-head UGC demo (540×982, 24 fps, 17 s)
| Encode | MB per minute | kbps | Size vs source | VMAF | SSIM |
|---|---|---|---|---|---|
| H.264 CRF 18 | 7.50 | 1000.2 | 209.2% | 98.39 | 0.9951 |
| H.264 CRF 23 | 4.77 | 636.1 | 133% | 96.92 | 0.9931 |
| H.264 CRF 28 | 3.13 | 417.7 | 87.4% | 93.34 | 0.9891 |
| H.265 CRF 20 | 6.47 | 863.1 | 180.5% | 97.43 | 0.9935 |
| H.265 CRF 26 | 3.55 | 474 | 99.1% | 94.07 | 0.9890 |
| H.265 CRF 30 | 2.35 | 312.8 | 65.4% | 89.90 | 0.9840 |
| AV1 CRF 30 | 5.84 | 778.5 | 162.8% | 96.50 | 0.9916 |
| AV1 CRF 38 | 3.27 | 436 | 91.2% | 94.18 | 0.9885 |
| AV1 CRF 45 | 2.15 | 287 | 60% | 91.62 | 0.9853 |
| VP9 CRF 31 | 5.27 | 703 | 147% | 96.27 | 0.9904 |
| VP9 CRF 37 | 3.59 | 478.1 | 100% | 93.99 | 0.9872 |
AI product clip, mug (960×540, 24 fps, 5 s)
| Encode | MB per minute | kbps | Size vs source | VMAF | SSIM |
|---|---|---|---|---|---|
| H.264 CRF 18 | 10.46 | 1394.3 | 100.6% | 95.97 | 0.9914 |
| H.264 CRF 23 | 5.71 | 760.8 | 54.9% | 92.45 | 0.9871 |
| H.264 CRF 28 | 3.03 | 404.7 | 29.2% | 85.98 | 0.9801 |
| H.265 CRF 20 | 5.18 | 690.1 | 49.8% | 93.96 | 0.9894 |
| H.265 CRF 26 | 2.14 | 284.9 | 20.6% | 88.96 | 0.9835 |
| H.265 CRF 30 | 1.27 | 169.6 | 12.2% | 83.08 | 0.9769 |
| AV1 CRF 30 | 2.43 | 323.7 | 23.4% | 91.05 | 0.9866 |
| AV1 CRF 38 | 1.45 | 193.1 | 13.9% | 87.34 | 0.9831 |
| AV1 CRF 45 | 0.94 | 125.2 | 9% | 83.29 | 0.9791 |
| VP9 CRF 31 | 2.92 | 389.8 | 28.1% | 90.94 | 0.9842 |
| VP9 CRF 37 | 1.77 | 236.6 | 17.1% | 86.80 | 0.9795 |
AI product clip, serum (560×688, 16 fps, 5 s)
| Encode | MB per minute | kbps | Size vs source | VMAF | SSIM |
|---|---|---|---|---|---|
| H.264 CRF 18 | 5.26 | 700.8 | 170.8% | 98.80 | 0.9956 |
| H.264 CRF 23 | 3.54 | 471.7 | 115% | 97.67 | 0.9941 |
| H.264 CRF 28 | 2.27 | 303.2 | 73.9% | 94.21 | 0.9895 |
| H.265 CRF 20 | 4.52 | 602.4 | 146.8% | 98.29 | 0.9942 |
| H.265 CRF 26 | 2.45 | 327 | 79.7% | 95.86 | 0.9900 |
| H.265 CRF 30 | 1.61 | 214.6 | 52.3% | 91.79 | 0.9856 |
| AV1 CRF 30 | 2.99 | 398.2 | 97% | 97.18 | 0.9915 |
| AV1 CRF 38 | 1.79 | 238.7 | 58.2% | 94.65 | 0.9883 |
| AV1 CRF 45 | 1.14 | 152 | 37% | 90.98 | 0.9845 |
| VP9 CRF 31 | 3.01 | 401.8 | 97.9% | 96.86 | 0.9902 |
| VP9 CRF 37 | 2.08 | 277.6 | 67.7% | 94.52 | 0.9871 |
Two things stand out. First, re-encoding a small, already-compressed clip at high quality can make it bigger: H.264 CRF 18 turned the 5-second serum clip into a file 170.8% the size of its source video, and the mug clip into 100.6%. Second, the default-looking CRF values are not equivalent across codecs: on the talking head, H.264 CRF 23 scored VMAF 96.92 at 4.77 MB per minute, while H.265 CRF 26 scored 94.07 at 3.55 and AV1 CRF 38 scored 94.18 at 3.27. Comparing codecs at “their usual CRF” mixes quality and size; comparing at matched VMAF, as above, doesn't.
How long does H.265 or AV1 take to encode?
H.265 took about 2.7 times and AV1 about 3.1 times as long as H.264 to encode our clips, and VP9 about 9.5 times. The table shows the median wall-clock time at each codec's middle CRF, with the frames encoded per second.
| Clip | Frames | H.264 CRF 23 | H.265 CRF 26 | AV1 CRF 38 | VP9 CRF 31 |
|---|---|---|---|---|---|
| Talking-head UGC demo | 408 | 1.62 s (252.4 fps) | 4.00 s (102.1 fps) | 5.70 s (71.5 fps) | 21.00 s (19.4 fps) |
| AI product clip (mug) | 121 | 0.91 s (132.7 fps) | 2.49 s (48.6 fps) | 1.05 s (114.7 fps) | 6.14 s (19.7 fps) |
| AI product clip (serum) | 81 | 0.39 s (208 fps) | 1.08 s (74.7 fps) | 1.85 s (43.9 fps) | 3.42 s (23.6 fps) |
| Average vs H.264 | 1× | 2.66× | 3.14× | 9.51× |
Times this short include FFmpeg's start-up, and the Mac was running other work, so treat the ratios as rough: AV1's ranged from 1.16× to 4.75× H.264 by clip. SVT-AV1 has faster presets (up to 13) and slower, more efficient ones; preset 8 is a common middle ground. VP9 used libvpx's defaults, which are slow; its speed settings would change this a lot. On a long video these ratios turn into real waiting time: at the talking head's AV1 speed of 71.5 frames per second, a 10-minute 24 fps video (14,400 frames) would take about 3 minutes 20 seconds on this machine.
Which codec should you use for TikTok, Reels and Shorts?
Use H.264 for TikTok, Instagram Reels and YouTube Shorts uploads, at a high quality setting (CRF 18 to 20) from your original. Platforms re-encode every upload for their viewers, so a smaller AV1 or H.265 upload only saves upload time, and our test shows that saving can be close to nothing on talking-head content. H.264 CRF 18 on our 540×982 talking head was 7.5 MB per minute, small enough that the upload is not the bottleneck.
- Export at the platform's resolution and a generous bitrate: TikTok video size, Instagram Reels size and YouTube Shorts size and length list the specs.
- Don't re-compress a file just to upload it: every generation loses a little, and the platform compresses again.
- If your phone recorded HEVC, upload it as it is rather than converting; H.264 vs H.265 explains where HEVC plays.
- Bitrates per platform are in the video bitrate guide.
Which codec should you use to send a video by email or Discord?
Use H.264 to send a video by email, Discord or chat, and make it smaller with a higher CRF or a lower resolution rather than a newer codec. H.264 plays on every device; an AV1 or HEVC attachment may not play for the person you send it to, and on talking-head clips the newer codec saved little in our test.
With audio included, our talking-head clip at H.264 CRF 23 plus 128 kbps AAC came to 5.71 MB per minute, so roughly 3.5 minutes fits Discord's 20 MB free limit and 4.4 minutes fits Gmail's 25 MB. The audio was 15.8% of that file (120.3 kbps of AAC next to 635.0 kbps of video), so on small files a lower audio bitrate, or mono for speech, is a real saving. Our clips are small; a 1080p phone video needs far more per minute, as video file size per minute shows.
Step-by-step guides: how to compress a video for email, how to make a video small enough for Discord and how to compress a video without losing quality. The free video compressor does it in your browser; it's free, runs in your browser and never uploads your file. The video bitrate calculator works out the bitrate for a size limit.
When is AV1 or H.265 worth it?
AV1 or H.265 is worth it when you store or serve the file yourself and the video has detail and motion. On our detailed product clip, AV1 needed 47% and H.265 57% of the H.264 size at the same VMAF; across a library or a website's video bandwidth, that roughly halves storage and bandwidth.
| Job | Our pick | What our test showed |
|---|---|---|
| Uploading to TikTok, Reels, Shorts, YouTube | H.264 | Platforms re-encode; the codec saving is small on talking heads |
| Email, Discord, chat attachments | H.264 | Plays everywhere; size comes from CRF, resolution and audio |
| Video on your own website | AV1 with an H.264 fallback | Smallest files on all three clips |
| Archiving detailed footage | AV1 or H.265 | 47-57% of H.264's size on the product clip |
| Fast turnaround | H.264 | H.265 and AV1 took 2.7-3.1× as long at these settings |
Browser and device support decides the rest; AV1 vs HEVC has the October 2026 support tables, and what is a WebM file covers VP9 and AV1 in WebM.
What are the limits of this test?
This is a small test, and these are its limits:
- Three clips, 27 seconds in total. Two are 5-second AI-generated product clips and one is a 17-second talking head. Results on sports, screen recordings or grainy footage will differ.
- Low resolution. The largest clip is 960×540. We did not test 1080p or 4K, where there are far more pixels per frame to save on, so our percentages may not carry over.
- Already-compressed sources. Every source was already H.264, so VMAF measures loss against that file, not against a camera master. Re-encoding H.264 with H.264 may be favoured, because the source's own artefacts are part of the reference.
- One preset per codec. x264 and x265 medium, SVT-AV1 preset 8 and libvpx defaults. Slower presets make smaller files at the same quality, faster ones the opposite.
- Matched quality is interpolated between the two nearest CRF values, and the mug clip is matched at VMAF 90 because H.265, AV1 and VP9 did not reach 94 at the CRFs we tested.
- Timing is noisy. Encodes lasted 0.3 to 21 seconds on a shared Apple M1; SVT-AV1 output also varied by a few hundred bytes between runs.
- VMAF and SSIM are models of perceived quality, not a viewer panel.
Frequently asked questions
Is AV1 smaller than H.265?
On our three clips, yes: at matched VMAF, AV1 averaged 72% of H.264's size and H.265 84%. The gap was largest on a detailed product clip and small on a talking head.
How much smaller is H.265 than H.264?
It depends on the video. On our clips, H.265 ranged from 57% of H.264's size (detailed product clip) to 104% (talking head), averaging 84% at matched quality.
Is AV1 slow to encode?
At SVT-AV1 preset 8 it took about 3.1 times as long as x264 medium on our clips, on an Apple M1; H.265 at preset medium took about 2.7 times as long.
What CRF gives the same quality in H.264, H.265 and AV1?
There's no fixed conversion. On our talking-head clip, VMAF of about 94 came from H.264 CRF 28 (93.34), H.265 CRF 26 (94.07) and AV1 CRF 38 (94.18). Test a short sample of your own footage.
Does re-encoding a video always make it smaller?
No. Re-encoding our 5-second serum clip with H.264 CRF 18 made a file 170.8% the size of the source's video. Re-encoding an already-compressed file at high quality can grow it.
Should I upload AV1 to TikTok or Instagram?
No need. Upload H.264 MP4 at a high quality setting; the platforms re-encode every upload for viewers anyway.
Can I run this test on my own videos?
Yes. Our script (quickveed.com/data/video-encode-study.py) takes a folder of MP4 files and needs only FFmpeg built with libvmaf, x264, x265, SVT-AV1 and libvpx.
Try it with your own video
Caption, clip and dub your videos without worrying about codecs: upload MP4 or MOV. Upload a video, add captions, and download a copy ready to post. QuickVeed plans start at $18/month, and new accounts get a 14-day trial with 250 credits, no card needed. Sign up or see pricing.





