Video Compressor: Reduce Video File Size Online

Compress MP4, MOV, and WebM videos in your browser using ffmpeg.wasm H.264 re-encode. No upload required.

First use downloads ~31 MB FFmpeg compiled to WebAssembly. Trims, crops, and re-encodes video files locally. The single-threaded build skips SharedArrayBuffer requirements so it loads on any modern browser. Cached after the first run.

CRF controls quality, not an exact file size. Lower CRF = better quality + larger file.

Downscale only. If the source is already at or below the target height, no scaling is applied.

About Video Compressor

Upload a video, pick a quality preset and an optional target resolution, then click Compress. The H.264 re-encode runs entirely in your browser via ffmpeg.wasm. After processing the tool shows the before and after file sizes and how much was saved. The result downloads as an MP4 and plays in an inline preview.

Video Compressor uses ffmpeg.wasm to re-encode the input video with libx264 at a CRF you choose. CRF (Constant Rate Factor) is a quality-based mode where the encoder decides how many bits each frame needs to hit a target visual quality level. A lower CRF value preserves more detail and produces a larger file; a higher value accepts more compression artifacts in exchange for a smaller file. The presets here cover the most common tradeoffs: CRF 23 for high quality, CRF 28 for a balanced result, and CRF 32 for maximum size reduction.

The resolution selector scales the video down before encoding if the source is taller than the target. The filter uses the `-vf scale=-2:H` flag, which sets the output height and calculates width to preserve the aspect ratio with even numbers. If the source is already at or below the selected resolution, no scaling is applied so you never accidentally upscale.

The tool always outputs MP4 with AAC audio at 128 kbps. After compression it reports the original size, the compressed size, and the percentage reduction. If the output happens to be larger than the source (which can occur with very short or already-compressed clips), the tool reports that honestly rather than pretending it saved space.

How to use the Video Compressor
  1. 1

    Upload a video

    Pick an MP4, MOV, WebM, MKV, or AVI file. A preview plays inline and the tool shows the original file size.

  2. 2

    Choose quality and resolution

    Select a quality preset (High quality, Balanced, or Small file) and an optional downscale target. The CRF value next to each preset explains the quality tradeoff.

  3. 3

    Compress and download

    Click Compress video. FFmpeg.wasm loads on first use and runs the H.264 encode locally. When done, the size saving is shown and the result is ready to download.

Common use cases

Shrink a video before emailing

Bring a 200 MB screen recording under a 25 MB email attachment limit by re-encoding at CRF 28 with 720p downscale.

Reduce storage on a phone

Compress high-bitrate 4K clips shot on a phone down to 1080p H.264 before archiving to free up space.

Prepare video for a CMS upload limit

Many CMS platforms cap video uploads at 50 or 100 MB. Compress and optionally downscale to stay under the threshold without leaving the browser.

Speed up a web page video

Lower the bitrate of a background or demo video so it downloads faster for visitors on slow connections.

Frequently asked questions
Is my video uploaded anywhere?

No. The file is read into ffmpeg.wasm's in-memory filesystem and processed by WebAssembly running in your browser tab. Nothing is sent to a server.

What is CRF and why does it not give an exact file size?

CRF (Constant Rate Factor) tells the encoder what visual quality to target, not a specific bitrate. Complex scenes use more bits; simple scenes use fewer. The resulting file size depends on the content, so two videos encoded at the same CRF will be different sizes.

Why is this slower than an upload-based compressor?

Upload services run FFmpeg on fast server hardware. Here the encode runs in WebAssembly inside your browser, which has no access to hardware acceleration. A one-minute clip may take several minutes. The tradeoff is that your video never leaves your device.

Will the tool upscale my video if I pick 1080p but the source is 720p?

No. The resolution selector only downscales. If the source height is already at or below the selected target, no scaling filter is applied and the video keeps its original dimensions.

What formats does it accept?

MP4, MOV, WebM, MKV, and AVI are tested. The output is always MP4 with H.264 video and AAC audio. Compatibility depends on which demuxers are compiled into the WASM build.

converterweb