No upload, 100% local, no account

Compress video

Re-encode your video to H.264+AAC (MP4) in the browser. Quality preset or target bitrate. Nothing is sent to a server.

How Compress video works

Compress a video to a smaller file without sending it anywhere, right in your browser. The tool re-encodes your clip using H.264 video and AAC audio inside an MP4 container, powered by ffmpeg compiled to WebAssembly. You control the compression through a CRF (Constant Rate Factor) slider or a target bitrate, whichever fits your goal.

CRF 18 keeps quality close to the original while trimming some size; CRF 28 cuts further but softens fine detail. There is no one-click "fit to 25 MB" mode; instead, bitrate mode lets you compute the number yourself with one formula: total bitrate in kbps ≈ (target size in MB × 8192) ÷ duration in seconds. A 5-minute clip aimed at Discord's 25 MB free-tier limit needs roughly 683 kbps total; subtract the ~128 kbps reserved for AAC audio and you get about 555 kbps to type into the video bitrate field. The same formula covers a 25 MB email attachment cap or any other size ceiling an upload form enforces. Re-encoding is CPU-heavy and runs on your own machine, so a 10-minute 4K clip takes notably longer than a 30-second 1080p short.

How to use Compress video, step by step

  1. Drop or select the video file you want to compress.
  2. Choose CRF mode for consistent visual quality, or bitrate mode when you need a precise file size.
  3. Adjust the CRF value (18-28 range; lower = better quality, larger file) or enter the target kilobits per second.
  4. Click Compress and wait for ffmpeg to finish re-encoding on your device.
  5. Download the smaller MP4 when the button appears.

Common use cases

  • Shrinking a raw screen recording before attaching it to a bug report or Slack message.
  • Getting a holiday video under a size limit imposed by an email or cloud-storage service.
  • Reducing bandwidth usage for a background video loop on a website, targeting a specific bitrate.
  • Archiving an old SD-card footage library at lower quality to free up disk space without deleting files.

Frequently asked questions

Does the H.264 re-encoder send my video to a server?

No. ffmpeg compiled to WebAssembly runs the libx264 encoder directly in your browser tab. Your video is read into local memory, compressed there, and the smaller MP4 is saved to your device. Nothing is transmitted to Sunasty or any third party. You can confirm this by watching the Network tab in DevTools while the tool is running.

What CRF value should I use?

CRF 18 is visually near-lossless and is a good starting point for archiving footage you care about. CRF 23 is the libx264 default, a solid general-purpose compromise. CRF 28 shrinks files aggressively but introduces visible softness on fast motion or fine textures. For sharing clips online, 21-24 is the usual sweet spot.

Why is compression much slower in the browser than in a desktop app?

WebAssembly runs close to native speed but still within a single-threaded browser context, without hardware video acceleration. Encoding with libx264 through ffmpeg.wasm is genuinely slower than a native ffmpeg binary that can use NVENC, QuickSync, or multi-core CPU parallelism. Short clips or lower resolutions finish quickly; long 4K clips require patience.

Can I compress MKV, MOV or AVI files, not just MP4?

Yes. ffmpeg.wasm reads all common container formats. The output is always MP4 with H.264, because that combination plays on every device and browser without plugins.

Does the output keep the original audio quality?

The audio is re-encoded to AAC at 128 kbps by default, which is transparent for speech and adequate for music. If the source audio was already AAC and you need to preserve it exactly, use a separate audio copy tool rather than this compressor.

Is there a file size limit?

There is no server-side limit because no server is involved. The practical ceiling is your browser's available RAM. Most devices handle files up to a few gigabytes; very large clips may cause the tab to run out of memory before encoding finishes. Splitting the clip first and compressing each part separately is a reliable workaround.

Can I compress a video on my phone?

It works, but honestly a phone browser has much less memory available to a single tab than a laptop. A short clip in 1080p or below compresses fine on most recent phones. A long or 4K clip is more likely to run the tab out of memory on mobile than on desktop; if that happens, trim the clip shorter first or try again on a computer.