A five-minute phone video can eat 500 MB. Before you email it, share it on WhatsApp, or embed it on a website, you need to compress it — but not by destroying it. The trick is understanding that modern codecs throw away data your eyes cannot see, so you can shrink files by 70–90% with no visible difference.
How "lossless-looking" compression actually works
Video codecs like H.264, H.265 (HEVC), and AV1 remove redundancy: pixels that stay the same across frames, details too subtle to notice, noise. Constant-quality encoding — RF in HandBrake, CRF in FFmpeg — keeps a fixed visual quality level and spends only as much bitrate as each frame needs. Set the quality level sensibly and the file shrinks while the picture looks identical on any normal screen.
Quick codec cheat sheet: H.264 works everywhere. H.265 produces files roughly 25–50% smaller at the same visual quality but encodes more slowly and plays on fewer old devices. AV1 compresses even better but still has limited playback support — check compatibility before standardising on it.
Method 1: HandBrake (best free desktop option)
HandBrake is free, open-source, and runs on Windows, Mac, and Linux. Its Constant Quality (RF) slider is the single most important control.
1. Download HandBrake from handbrake.fr and open it.
2. Drag your video into the window (MP4, MOV, MKV, AVI all work).
3. In the Summary tab, set Format to MP4 and tick Web Optimized (helps streaming playback).
4. In the Video tab, set Video Encoder to H.264 (x264) for maximum compatibility, or H.265 (x265) for smaller files.
5. Set Quality to Constant Quality and adjust the RF slider:
Lower number = higher quality and bigger file. RF 22 is HandBrake's documented starting point for 1080p.
6. Set Framerate to Same as source and Constant framerate — changing frame rate rarely helps and can make motion look odd.
7. Click Start Encode.
- 720p: RF 20–22 (H.264) or 22–24 (H.265)
- 1080p: RF 20–23 (H.264) or 22–26 (H.265)
- 4K: RF 24–28 (H.265)
A typical result: a 500 MB 1080p clip at RF 22 compresses to around 90 MB with no perceptible loss. For maximum savings, try the H.265 10-bit encoder — videoproc's testing shows it as the sweet spot between compression efficiency and device support.
Method 2: FFmpeg (for scripts and precise targets)
FFmpeg is the engine behind most free tools. If you are comfortable with a terminal, one command does the job:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k output.mp4For H.265, swap in -c:v libx265 -crf 28. The CRF scale runs 0 (lossless) to 51; values 18–23 for H.264 and 24–28 for H.265 are the useful range for everyday video.
To hit an exact file size — say Gmail's 25 MB attachment limit — calculate the target bitrate first:
bitrate_kbps = (25 MB × 8192) ÷ duration_seconds − 128Subtract 128 kbps for audio, then encode with two-pass or -b:v. A simpler approach: compress with CRF 23 first and check the size; only fiddle with bitrate math if you miss the target.
Method 3: Online compressors (no installs)
When you cannot install software, browser tools work. Avoid ones that watermark output or force a signup.
- FreeConvert — free, no signup, good for quick jobs under a few hundred MB; pick H.264 and a medium quality level.
- HappyScribe's compressor — free with no signup and no watermark; offers a balanced vs maximum-compression choice.
- CloudConvert — reliable with per-file quality presets; the free tier has daily conversion limits.
Remember the privacy trade-off: your video uploads to someone else's server. Don't use upload-based tools for sensitive footage.
Method 4: Private browser compressors (nothing leaves your PC)
A newer category runs FFmpeg as WebAssembly inside the page itself. Tools like videocompress.dev and SaveOnlineVideos encode entirely on your device — the page works offline after loading, there's no upload to time out, no watermark, and big files are fine. Videocompress.dev even has presets for Gmail's 25 MB limit, Discord's 10 MB cap, and WhatsApp/Telegram sizes.
When to change resolution instead of quality
If RF/CRF alone can't hit your target, reduce resolution. A 4K file shown on a phone doesn't need 3840 pixels. Dropping 4K to 1080p cuts file size far more than pushing RF up by several points, and the difference is invisible on small screens. In HandBrake's Dimensions tab, scale down only when the viewing context allows it. Also consider audio: re-encoding a WAV track to AAC at 128 kbps can save tens of megabytes on long videos.
Pro tips for the best quality-to-size ratio
- Trim first. Cut out dead footage before encoding so the compressor spends its bitrate budget on content that matters. Stream-copy trimming (no re-encode) is instant and lossless.
- Don't re-encode twice. Every generation loses quality. Compress from the original source file, not from an already-compressed export.
- Match the platform. Social apps re-encode your upload anyway, so compress moderately rather than aggressively before uploading. YouTube prefers H.264 at 8,000–12,000 kbps for 1080p.
- Archive the original. Keep original files for irreplaceable footage; use compressed copies for sharing and day-to-day storage.
Key takeaways
- Constant Quality (RF/CRF) beats fixed bitrates for quality-per-megabyte — it adapts to each scene.
- Use HandBrake with H.264 at RF 20–23 for 1080p, or H.265 at RF 22–26 for files 25–50% smaller.
- One FFmpeg command (
-crf 23, preset slow) compresses any video for free with no watermark. - For Gmail's 25 MB limit, use the bitrate formula or a preset tool like videocompress.dev.
- Lower resolution before you lower quality when chasing a hard size cap.

