Compress a video

Re-encode a video at lower bitrate or smaller resolution to shrink the file. Output is H.264 MP4.

Drop your file here

or click to browse

All files • or paste with ⌘V
Nothing has left this page since you opened the tool. Show network activity

    The browser enforces this: the site’s security policy only lets the page talk to the code libraries’ servers and an anonymous usage counter (tool name, file type, size range). A request carrying your file to anywhere else would be blocked before it left.

    Check it yourself: open your browser’s developer tools, go to the Network tab, and run the tool. Or turn off Wi-Fi once the tool has loaded; it keeps working.

    How it works

    Re-encode a video at lower bitrate or smaller resolution to shrink the file. Output is H.264 MP4.

    Three knobs. Quality (CRF 18 to 35, where lower means higher quality and bigger file; 28 is a balanced default). Resolution (keep original, or downscale to 1080p / 720p / 480p / 360p). Audio (96, 128, 192 kbps AAC, or drop audio entirely for video-only output). Optionally trim to a clip range first via the built-in trimmer. The tool runs ffmpeg.wasm with libx264 at the fast preset. A 1080p 100MB MP4 compressed at CRF 28 / 720p typically drops to 15-30 MB with minor quality loss. CRF 23 is closer to source quality but a larger file. CRF 35 is small but blocky for fast motion. Output filename has -compressed.mp4 appended.

    How to use it

    1. Drop your video. Optionally trim to a clip range first with the built-in trimmer.
    2. Set quality and resolution. CRF 28 and 720p is a balanced default; lower CRF means higher quality and bigger files.
    3. Choose audio handling. Keep audio at 96-192 kbps AAC, or drop it entirely.
    4. Compress and download. ffmpeg.wasm re-encodes locally — expect a few minutes for longer videos — then the -compressed.mp4 downloads.

    Frequently asked questions

    What CRF should I pick?
    23 if quality matters and file size is flexible. 28 (default) for a good balance. 32+ for small files where some blockiness is acceptable.
    Why is it slow?
    Video re-encoding is CPU-heavy. ffmpeg.wasm is single-threaded in the browser, so a 5-minute video can take a few minutes to encode. For a one-off, that's fine.
    Will compressing make the file shareable?
    Usually. Dropping a 1080p file to 720p / CRF 28 often gets it under typical email and chat-app limits (25 MB Gmail, 50 MB Discord).
    Is the video uploaded?
    No. Everything runs locally via ffmpeg.wasm.
    Saved