Compress a video to fit a size limit

Drop a video here

or click to choose — MP4, MOV, M4V, WebM, MKV

Tell it the limit you are up against — 10 MB, 16 MB, the 25 MB Gmail allows — and it works out a bitrate, encodes, then weighs the result. If the file came out over, it tries again at a smaller size and shows you each attempt. Most compressors calculate a bitrate and hope; in our tests the browser's encoder overshot a 2 MB target by a third at full resolution, so hoping is not enough. The sound is copied across unchanged, and the video never leaves your device.

How to compress a video to a size limit

  1. Drop an MP4, MOV, M4V, WebM or MKV into the box above. The In this file panel shows its picture size, codec, bitrate, frame rate and sound before anything changes.
  2. Choose the limit you need to get under: 8, 10, 16 or 25 MB, or type another number.
  3. Read the plan line. It says what bitrate and picture size the tool will start with, and why.
  4. Press Compress video. When it finishes, check the result against the limit in bytes, play it on the page, and download.

Why "set the bitrate" is not enough

The usual way to hit a size is arithmetic: a 25 MB limit over 60 seconds is about 3.3 megabits per second, so ask the encoder for that. It is a reasonable estimate and it is how most compressors work. The trouble is that the encoder treats the number as a target, not a promise, and at low bitrates it stops listening.

We measured this with a 12-second, 1080p, 30 fps test clip recorded at 8 Mbps (12.2 MB, with AAC sound), compressed by Chrome's built-in H.264 encoder, the same one this page uses:

Asked forPictureCame outOf the limit
8 MB1080p7.82 MB97.7%
4 MB1080p3.91 MB97.8%
2 MB1080p2.66 MB133%
2 MB, second try at 842 kbps1080p2.64 MB132%
2 MB720p1.95 MB97.7%
1 MB1080p2.56 MB256%
1 MB, second try at 175 kbps1080p2.56 MB256%
1 MB480p0.98 MB97.7%

Down to about 4 MB the estimate works. Below that, at full resolution, the encoder has a floor: for this clip it would not go under roughly 2.5 MB whatever bitrate it was given. Lowering the bitrate further changed nothing. Reducing the number of pixels did: the same 2 MB target at 720p landed at 97.7%. The floor is not the same on every device or for every video, which is exactly why the result has to be measured rather than predicted.

What this tool does about it

  • Starts at a sensible size. It picks the largest picture size where the budget still gives enough bits per pixel, instead of squeezing a 4K clip into 5 MB at full resolution.
  • Weighs the result. After encoding, the file's actual size is compared with the limit in bytes.
  • Steps down when it has to. If the file is over, the tool corrects the bitrate by how far it missed and goes down one picture size, up to four attempts. Each attempt is listed, so you can see what happened.
  • Never hands back a bigger file. If the result is not smaller than your original, it tells you so instead of offering it.
  • Leaves the sound alone. The audio is copied across, not re-encoded. Only when it would eat more than a quarter of a small limit is it re-encoded to 64 kbps.

Limits worth knowing

Gmail's attachment limit for personal accounts is 25 MB for the whole message, so a 25 MB video plus any other attachment will not go through as an attachment. Other sites change their limits from time to time; the safest number is the one printed in the upload box you are using. Limits are almost always counted in decimal megabytes, which is how this tool counts too: 10 MB here is 10,000,000 bytes, shown exactly in the result. If a file you made elsewhere keeps failing a limit it seems to meet, this guide explains the two kinds of megabyte.

What it does not do

It does not make H.265 or AV1 files. Those are smaller for the same quality, but some phones, editors and upload forms still refuse them; an H.264 MP4 plays almost anywhere, and a file that fits but will not play has not solved anything. It does not cut the clip either. If the limit is very small for the length, trimming first gives a far better picture than squeezing harder: half the length means twice the bitrate for what is left.

Everything runs in your browser with its own video encoder, the one video calls use. The video is not uploaded, there is no size limit on what you drop in, and no account.

Frequently asked questions

How do I compress a video to a specific size?

Drop the video in, choose the limit you need to get under - 8, 10, 16 or 25 MB, or type your own - and press Compress video. The tool shows its plan first (the bitrate and picture size it will use), encodes the video, then measures the file. If it is over the limit it goes down one picture size and encodes again. You get the first result that is actually under the limit, with every attempt listed.

Why did another compressor give me a file that was still too big?

Because it calculated a bitrate and trusted the encoder to hit it. Encoders are not exact, and below a certain bitrate they simply stop getting smaller at a given resolution. In our test, a 12-second 1080p clip asked for 2 MB came out at 2.66 MB, and lowering the bitrate to 175 kbps still gave 2.56 MB. The same clip at 720p came out at 1.95 MB. This tool measures the output and steps the resolution down when that happens, instead of handing you a file that fails the upload.

Will the video look worse?

It is re-encoded, so yes, some detail is lost - that is where the space comes from. How much depends on how tight the limit is for the length of the clip. The plan line tells you the bitrate before you start, and a short clip under a generous limit keeps its full resolution. If the picture is too soft, trim the clip first: a shorter video gets more bits per second out of the same limit.

What happens to the sound?

It is copied into the new file as it is, not decoded and compressed again. Only when the original sound would take up more than a quarter of the limit - a long clip under a small limit - is it re-encoded to 64 kbps AAC, and the page says when that happened.

Why is 1 MB a megabyte and not 1,048,576 bytes?

Because upload limits are almost always decimal: 10 MB means 10,000,000 bytes. The result line shows the exact byte count so you can check it against the site you are uploading to. If a site counts in binary units, 10 MB there is 10,485,760 bytes and a file from this tool fits with room to spare. There is more on this in our guide to why a file that looks the right size still fails a limit.

Which formats work?

MP4, MOV and M4V from phones and cameras, and WebM and MKV where your browser can decode them. The output is always an MP4 with H.264 video, which plays on practically every phone, computer and upload form. iPhone videos in HEVC work in browsers that can decode HEVC; the page tells you if yours cannot.

Does my video get uploaded?

No. The file is read and re-encoded by your own browser, using its built-in video encoder, and the result is saved straight to your device. There is no file size limit and nothing to sign up for. You can go offline after the page has loaded and it keeps working.

Which browsers can do this?

Anything with the WebCodecs video encoder: current Chrome, Edge, Firefox and Safari. Speed depends on your device; on our test machine a 12-second 1080p clip took about 6 seconds per attempt at full resolution and 2 seconds at 720p. The tool tells you straight away if your browser has no encoder.