Video Compressor

Shrink MP4, MOV, MKV and WebM videos in your browser: pick a quality or an exact target size, or lower the resolution and fps. No upload.

Runs in your browser

Browser-only · H.264 MP4 · target size checked after encoding · vertical phone videos stay upright · Chrome, Edge, Firefox 130+, Safari 16.4+

Drop a file here or click to browse
MP4 · MOV · MKV · WebM · M4V · TS · one video at a time · Files never leave your device.
How to shrink
Quality
Frame rate
Advanced
Codec

Expected result

—

Result

—

A large video file being squeezed into a much smaller one
Same picture, fewer bits: the encoder keeps what the eye notices.
File size = bitrate × lengthFile size = bitrate × length18 Mbps135 MBbitrate (per minute)2.8 Mbps21 MBbitrate (per minute)
60 → 30 fps keeps every other frame60 → 30 fps keeps every other frame60 fps30 fps

How video compression actually shrinks a file

A video file's size is almost exactly bitrate × length: a phone clip recorded at 18 Mbps uses about 135 MB per minute, while the same minute at 2.8 Mbps takes 21 MB. Compressing means re-encoding the picture with fewer bits per second, and optionally fewer pixels (resolution) or fewer frames per second.

The sound is small by comparison — AAC at 128 kbps is under 1 MB per minute — so it is copied unchanged by default. Only when a target size is tight does the tool lower it to 96 or 64 kbps.

Quality levels and what they mean in numbers

  • High quality: about 60% of YouTube's recommended upload bitrate (4.8 Mbps for 1080p at 30 fps).
  • Balanced: about 35% (2.8 Mbps for 1080p30), the default; differences are hard to see on a phone screen.
  • Smallest: about 20% (1.6 Mbps for 1080p30); fine for chat, visibly soft on a TV.

Every level is capped at 70% of the original's bitrate, so an already-small video can't come out bigger. The estimate under the options shows the expected size before you press Compress.

Hitting an exact target size

In Target size mode the bitrate is worked out from the limit and the length: video bits = (target − container overhead) × 0.97 ÷ seconds − sound bits. Browsers' encoders do not always obey: in our tests Chrome's variable mode overshot by 85–140% while its constant mode landed within 1%, and Firefox behaved the other way round. So the tool starts with the mode that suits your browser, measures the result and, if it is over, re-encodes up to twice with a corrected bitrate.

If a target is too small for the length, it lowers resolution first: it keeps the highest resolution that still gets at least 0.05 bits per pixel, the level below which H.264 turns blocky. With 25 MB and sound at 128 kbps that means 1080p60 for 30 seconds, 720p60 for a minute, 720p30 for two minutes and 360p30 for five.

Resolution or frame rate: which to lower

Lowering resolution from 1080p to 720p removes 56% of the pixels and usually looks better than squeezing 1080p into the same bitrate. Resolution here means the short side, so a vertical 1080×1920 phone video becomes 720×1280, not a squashed 406×720. Videos are never upscaled.

Going from 60 to 30 fps halves the frames; at the same quality that saves roughly 30–50%, because neighbouring frames are similar. Frames are chosen by their timestamps, so length and lip-sync stay exact even for phone videos with a variable frame rate. A target higher than the source (30 fps on a 24 fps film) changes nothing.

iPhone, HEVC and HDR videos

iPhones record HEVC (H.265) by default. Chrome, Edge and Safari can usually read it, Firefox cannot — the card says so as soon as you add the file. The output is H.264, which every phone, computer and messenger plays.

Since the iPhone 12, videos are often HDR (HLG). Browsers convert them to standard range without tone mapping, so bright skies and skin can look grey or washed out. The tool flags HDR files and shows the original and result side by side; if colours matter, check before sharing.

Privacy and limits of in-browser compression

The video is read from your device in small pieces and encoded by your browser's built-in encoder; nothing is uploaded, and there is no file-size cap from a server. Speed depends on your computer: a desktop typically encodes 1080p at two to five times real time, a phone more slowly.

Results over about 256 MB can be written straight to disk in Chrome and Edge, so even multi-gigabyte outputs don't have to fit in memory. Other browsers keep the result in memory and warn before it gets too large.

When not to compress

YouTube, Vimeo and most social platforms re-encode every upload, so sending them a compressed file only stacks two losses; upload the original if the platform accepts its size. Compress when a limit forces you to: Discord, email, messengers, or a nearly full phone.

If the result comes out larger than the original, the original was already efficiently encoded. The tool says so and you can simply keep the original.

How to use

  1. Drop a video onto the box or tap to choose one; check the card that describes it.
  2. Choose how to shrink it: a quality level, a target size such as Discord 20 MB, or Convert to MP4.
  3. Optional: lower the resolution or frame rate, change the sound, or cut a section under Advanced.
  4. Press Compress and watch the progress and time left.
  5. Compare the original and result, then download the MP4.

FAQ

Is there a file size limit?

No upload means no server cap; the video is read in pieces from your device. Very large results are written straight to disk in Chrome and Edge; other browsers warn above about 700 MB on a computer and 150–200 MB on a phone.

Why did my video get bigger?

The original was already encoded at a low bitrate, often by a messenger. Bitrates are capped at 70% of the source to prevent this, but some encoders can't go lower for busy scenes. Keep the original in that case.

Can it compress AVI, WMV or FLV?

No. Browsers can't read these older containers; the card names the format when you add one. Convert it to MP4 with a desktop app such as HandBrake first.

Does it work on a phone?

Yes in Chrome and Samsung Internet on Android and Safari 16.4+ on iPhone; Firefox for Android can't encode video yet. Phones encode more slowly and hold less in memory, so long 4K videos are better done on a computer.

What does AV1 (experimental) do?

AV1 gets similar quality at about 30% fewer bits, but encoding is slow (Firefox took 79 s for a 12-second 1080p60 clip in our test) and older phones, TVs and editors can't play it. Use H.264 unless you know the viewer supports AV1.

Related tools

More Video tools: Video

Send feedback

Found a bug or have an idea? Tell us — it helps make the tools better.

Only needed if you would like a reply.

Page: /video/video-compressor/