ALL VIDEO TOOLS23
Compress Video to Size
Compress a Video to a Target Size — 25, 16 or 10 MB
Give the compressor a size to aim at. It solves for a bitrate from your clip's length, then reports the size it actually produced.
Nothing is enforced, but the whole clip is read into one buffer so its audio can be decoded to 32-bit float, and the new MP4 is assembled in another beside it — so much past ~100 MB risks exhausting the tab.
About Compress Video to Size
Every upload box has a number on it. Email attachments stop at about 25 MB, WhatsApp at 16 MB, a Discord message without Nitro at 10 MB — and a phone recording sails past all three within a minute. This page takes the number as the input. Pick 25, 16 or 10 MB, or type your own, and the compressor works backwards: it measures how long the clip runs, subtracts what the audio track will cost, leaves an allowance for the container's own bookkeeping, and divides the rest across the duration to get a video bitrate. It then picks the largest frame height that bitrate can honestly carry — spending few bits on many pixels is how a target gets met and a video gets destroyed — and encodes once. It will not spend a ceiling it does not need, either: aim 25 MB at a 4 MB clip and the bitrate is solved against what that clip already spends rather than against the 25 MB. What it cannot hand back is the clip itself. There is no pass-through here — every run is a fresh WebCodecs encode — so a file that already fits can come back no smaller, and when it does the page says so and tells you to keep your original. Nor can it promise the number. A video encoder is handed a bitrate, not a file size, and how close the finished file lands depends on the footage — a static talking head undershoots, a handheld pan through leaves overshoots, and no solver can know which you have before it encodes it. So the result is reported as what it is: the size actually produced, next to the size you asked for, with a plain statement when the target was not met rather than a file quietly larger than your limit. There is a floor as well, and it matters. Below a certain bitrate H.264 stops looking like your video and starts looking like blocks, so the solver will not go under it; a forty-minute recording asked to fit in 10 MB will come back at the floor, above your target, and say so. Trimming the clip first is the honest answer to that, and the video trimmer is one page over. The encoding runs on WebCodecs — the browser's own H.264 encoder, hardware-accelerated where the machine offers it — and mp4-muxer writes the MP4. That is the same path the main video compressor uses; the difference here is only which end of the arithmetic you supply. It also means this page needs a browser with WebCodecs, which today is Chrome and Edge: Safari and Firefox are told so up front rather than part-way through an encode. Nothing is uploaded — the clip is decoded, re-encoded and muxed inside this tab.
Questions
Will the file actually come out at the size I picked?
It is a target, not a guarantee, and the page never pretends otherwise. An H.264 encoder is given a bitrate, not a file size: the solver turns your number into a bitrate using the clip's duration, and how close the finished file lands depends on the footage — a static shot undershoots, constant motion overshoots. What you get back is the size actually produced next to the size you asked for, and a plain statement when the target was missed rather than a download that quietly breaks your limit.
What happens when the target cannot be met?
You get the closest result it could manage, plus a clear line saying the target was not reached. There is a bitrate floor because below it H.264 stops resembling the source and starts resembling blocks, so a long recording asked to fit in a small number comes back at that floor, above your target. The fix is fewer seconds rather than fewer bits: trim the clip first and run it again.
Which number should I pick?
25 MB is the usual email attachment ceiling, 16 MB is what WhatsApp accepts, and 10 MB is the Discord limit without Nitro. Those three are offered as presets and every one of them is only a starting value — the field stays editable, so if your own limit is 8 MB or 40 MB, type it.
How is this different from Compress Video?
Same encoder, opposite input. Compress Video asks you to pick a preset — a resolution and a bitrate chosen for WhatsApp, email or the web — and the file size falls out of that. This page asks you for the file size and works backwards to the bitrate. Pick whichever end of the arithmetic you actually know.
Why does it say my browser is not supported?
The encoding runs on WebCodecs, the browser's own H.264 encoder, which today means Chrome or Edge. Firefox and Safari are checked before anything starts and told so up front, rather than being allowed to spend minutes on an encode that cannot finish. This page does not fall back to FFmpeg; the video tools that do are the trimmer and the container converters.
Is there a file size limit on the input?
Nothing is enforced, but everything happens in one browser tab: the clip is read into a buffer, its audio is decoded to 32-bit float, and the new MP4 is assembled beside both. Clips much past ~100 MB risk exhausting the tab's memory. For a long recording, trimming first is both faster and safer.
Is my file uploaded to a server?
No. Transmute processes everything locally in your browser using JavaScript and WebAssembly. Your files never leave your device — there is no server, no upload, no cloud processing.