BrowserTools

Video Compressor

Shrink video file sizes in your browser

By Guga — BrowserTools maintainer, Tbilisi, Georgia Updated 2026-08-19
Free Private No uploads

A one-time ~30 MB download of the WebAssembly FFmpeg core from unpkg.com happens on the first conversion; your browser caches it for every later run. The re-encode itself is local, and your source file is never uploaded.

What is Video Compressor?

Two sliders, and both of them matter more than you would expect. The CRF slider sets the encoder's target quality: 18 is close to transparent and produces a large file, 28 is a sensible default for phone footage, and anything past 35 is visibly soft, especially on gradients and on-screen text. The resolution slider scales the picture before encoding, and since bitrate follows pixel count, halving the linear scale removes three quarters of the work. One thing the interface does not expose: audio is always re-encoded to AAC at a fixed 96 kbps, so a high-quality soundtrack does not survive. There is no target file size here — CRF is a quality dial, and the resulting size is whatever the encoder needs to hit that quality.

Compress videos by re-encoding with a quality target you choose — usually 40–70% smaller files. Because it's local, there are no size caps, queues or privacy worries.

Private Video Compressor In Your Browser

Video Compressor is processed locally with client-side JavaScript. Your files never touch a server, and there is no queue to wait in.

Step-by-Step

How to use Video Compressor

1

Drop an MP4, MOV, MKV, AVI or WebM file onto the panel.

2

Set the Quality (CRF) slider, 18 for near-lossless through 40 for aggressive shrinking, then optionally pull the Resolution scale below 100%.

3

Press Compress video and leave the tab in the foreground — a long source takes real CPU time after the one-off engine download.

4

Read the Original and Result byte counts to see what the combination achieved, then download the MP4.

Key Capabilities
  • Exposes CRF from 18 to 40, the actual quality control a rate-target encoder works in.
  • Applies a resolution scale between 25% and 100% as a second, independent lever on output size.
  • Pins audio to AAC at 96 kbps so the compressed result is a single, predictable codec set.
  • Uses the veryfast x264 preset, trading a little compression efficiency for noticeably faster local encodes.
Common Use Cases
  • A support engineer getting a 240 MB screen capture under an email server's 25 MB attachment cap.
  • A course creator shrinking a batch of 4K lesson recordings before putting them behind a login wall.
  • A developer preparing a short demo clip to attach to a bug report on a tracker that caps uploads.
Clear Answers

Frequently Asked Questions

Can I target a specific file size?
No, not from these controls. CRF is a quality target, not a size target — a detailed, high-motion clip at CRF 28 will come out much larger than a static talking-head clip at the same setting. The only size levers you have are the CRF slider and the resolution scale, and both move quality too.
Will compressing a video that is already compressed help?
Sometimes. Dropping CRF to about 28 or scaling the resolution down can genuinely remove bits a first encode wasted. Raising the quality instead — CRF 18 on a CRF-28 source — will make the file larger and add a second generation of loss rather than removing one.
What happens to the audio track?
It is re-encoded to AAC at 96 kbps no matter what you set. That is fine for dialogue captured from a laptop microphone and thin for music or a lav feed, which will lose its top end. If the soundtrack is the part that matters, extract it separately and handle it as audio.
Is there a real limit on how long a file can be?
Not a hard-coded one, but the whole source is decoded and re-encoded in memory inside a WebAssembly build of FFmpeg, so a 30-minute 4K file will be slow and will lean hard on available RAM. The first run on this page also needs about 30 MB pulled from unpkg.com before any encoding starts.