To compress a video without visible quality loss, use Zro7 Compress Video with H.264 at CRF 23 or H.265 at CRF 28. Those are the FFmpeg defaults for a reason — they typically shrink phone recordings 50–80% while staying visually identical to the source. Everything runs in your browser via ffmpeg.wasm; nothing is uploaded.
CRF, in plain English
CRF (Constant Rate Factor) tells the encoder "pick whatever bitrate hits this quality target." Lower = higher quality + bigger file. Higher = smaller file + more artifacts. The scale is codec-specific:
- H.264: 0 = lossless, 18 = visually lossless, 23 = default, 28 = noticeably compressed.
- H.265 (HEVC): add ~5 to the H.264 value — CRF 28 in H.265 ≈ CRF 23 in H.264 but 30–50% smaller.
- AV1: add ~5 more; superior efficiency but slow to encode in a browser.
Recommended presets
- Web / social: H.264, CRF 23, preset medium. Universal compatibility.
- Archive / storage: H.265, CRF 28, preset slow. Half the size, all modern devices play it.
- Chat attachment (needs to fit under 25 MB): H.264, CRF 28, cap 720p.
Steps
- Open Compress Video.
- Drop your MP4, MOV, MKV, or WebM.
- Pick codec (H.264 for compatibility, H.265 for size), CRF, and optional max resolution.
- Click Compress. Progress + ETA are shown live.
- Download the compressed file.
Why browser compression beats HandBrake for small jobs
- No install; runs on Chromebooks, work laptops, and phones.
- No upload — the client's 4 GB wedding video stays local.
- Uses ffmpeg.wasm — the same libavcodec under HandBrake's hood.
Trade-offs vs desktop HandBrake
Native FFmpeg with hardware acceleration (NVENC, QuickSync, VideoToolbox) is 5–20× faster on the same file. Browser encoding is CPU-only. For occasional videos: browser wins on convenience. For daily bulk transcoding: use desktop.
Zro7