How to Reduce Video File Size Without Losing Quality (H.265, CRF, Bitrate Guide)

"Without losing quality" is technically a lie — all lossy video compression discards some information. The honest framing: you can compress to a bitrate where quality loss is invisible at normal viewing sizes and typical screen distances. Understanding where that threshold is — for your content, your codec, and your target device — is what this guide covers.

Why H.265 Is the Easiest Way to Cut File Size in Half

Switching from H.264 to H.265 (HEVC) is the single most effective way to reduce video file size with minimal quality trade-off. H.265 achieves the same visual quality as H.264 at roughly 40–50% lower bitrate. A 2GB H.264 video at 1080p becomes approximately 1GB as H.265 at equivalent visual quality.

H.265 works better because it uses larger prediction blocks (up to 64×64 pixels vs H.264's 16×16), more sophisticated motion estimation, and better intra-prediction — all of which store the same visual information more efficiently.

CodecTypical bitrate for 1080p30 (good quality)Encoding speedDevice compatibility
H.264 (libx264)4–8 MbpsFast (baseline)Universal (every device)
H.265 (libx265)2–4 Mbps2–5× slower than H.264Good (iPhone 6+, modern TVs)
VP9 (libvpx-vp9)2–4 MbpsVery slowGood (Chrome, Firefox, Android)
AV1 (libaom-av1)1.5–3 MbpsExtremely slowGrowing (Chrome 70+, Firefox 67+)

Understanding CRF: The Most Important Setting

CRF (Constant Rate Factor) is FFmpeg's quality control setting for H.264 and H.265. It sets a target quality level, and the encoder uses whatever bitrate is needed to achieve it. Lower CRF = higher quality = larger file. Higher CRF = lower quality = smaller file.

  • H.264 CRF range: 0 (lossless) to 51 (worst). Default is 23.
  • H.265 CRF range: 0 to 51. Default is 28 (roughly equivalent visual quality to H.264 CRF 23).
  • Visually lossless threshold: H.264 CRF 18 / H.265 CRF 24
  • High quality (recommended): H.264 CRF 20–23 / H.265 CRF 26–28
  • Web/social media quality: H.264 CRF 24–26 / H.265 CRF 28–30
  • Low quality (noticeable artifacts): H.264 CRF 28+ / H.265 CRF 32+

FFmpeg Commands for Video Compression

Standard H.264 Compression

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k output.mp4
  • -crf 23 — default quality (good for most use cases)
  • -preset slow — slower encoding = better compression at same quality (use medium for faster encoding)
  • -c:a aac -b:a 128k — AAC audio at 128kbps

H.265 for Maximum Size Reduction

ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a aac -b:a 128k output.mp4

H.265 CRF 28 ≈ H.264 CRF 23 in visual quality but produces ~50% smaller files. Encoding takes 2–5× longer.

Target Specific File Size (Two-Pass Encoding)

ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 1 -an -f null /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 2 -c:a aac -b:a 128k output.mp4

Two-pass encoding targets a specific bitrate (4 Mbps in this example). Pass 1 analyzes the video; Pass 2 encodes with optimal bit distribution. Use this when you have a specific file size target (e.g., must be under 500MB).

Target Bitrates by Resolution and Use Case

ResolutionH.264 (web/social)H.264 (high quality)H.265 equivalent
480p (854×480)1–2 Mbps3–4 Mbps0.5–1 Mbps
720p (1280×720)2–4 Mbps5–8 Mbps1–2 Mbps
1080p (1920×1080)4–8 Mbps8–15 Mbps2–4 Mbps
1440p (2560×1440)8–16 Mbps16–24 Mbps4–8 Mbps
4K (3840×2160)15–30 Mbps35–50 Mbps8–15 Mbps

HandBrake: GUI Alternative to FFmpeg

HandBrake is a free GUI video encoder that wraps FFmpeg and x264/x265. Key settings:

  • Preset: Fast 1080p30 (H.264) or HQ 1080p30 Surround (H.265)
  • Quality (RF): Lower RF = better quality. Default RF 22 (H.264) / RF 24 (H.265) is excellent for most content
  • Encoder Preset: Slow gives better compression; Fast gives faster encoding
  • Use the Preview function to check quality before encoding the full video

Convert Video Online

Convert and compress video files directly in your browser — MP4, WebM, MKV, and more. No upload to external servers.

Frequently Asked Questions

Can you reduce video file size without losing quality?
Not perfectly — all lossy compression discards some data. However, at H.264 CRF 18–22 or H.265 CRF 24–28, the quality loss is invisible at normal viewing. Switching from H.264 to H.265 cuts file size ~50% with no perceptible quality loss on compatible devices.
What is the best FFmpeg command to reduce video file size?
H.264: ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k output.mp4. H.265 (50% smaller): ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a aac -b:a 128k output.mp4. Lower CRF = better quality + larger file.
What is the target bitrate for 1080p video?
H.264: 4–8 Mbps for high quality, 2–4 Mbps for web/social (YouTube uses ~4.5 Mbps for 1080p30). H.265: 2–4 Mbps achieves equivalent quality to H.264 at 4–8 Mbps.
Does HandBrake reduce video quality?
HandBrake applies lossy compression — some quality reduction is unavoidable. At the default RF 22 (H.264) setting, output is visually indistinguishable from source for most content. Use HandBrake's Preview function to verify quality before encoding the full video.
Is H.265 worth using over H.264?
Yes for storage and streaming — H.265 achieves same quality at half the bitrate. Trade-offs: 2–5× slower encoding, no support on very old devices (iPhone 5s and earlier). For modern devices, H.265 is the better choice for any new encoding.