Loading news...
Utility Toolbox

Video Compressor

Utility Toolbox - Online tool

Video Compressor

Drop in a video and this will shrink it down to whatever (pretty much) size you need. Discord's 20 MB limit, or any number you pick yourself. Both the decoding and encoding happen here in your browser's own WebCodecs engine so no files ever leave the tab.

Runs in browser
What it is for

I kept trying to send video clips to friends and Discord would always say they were too large. I had a very simple Python tool that did the compression but I knew I wasn't the only one with this issue.

You can pick the exact size you need or if you know what you are doing, use bitrate and codec controls.

How it works
  1. Drop in a video MP4, MOV, WebM, MKV. Pretty much anything your browser can already play.
  2. Pick a preset or dial it in yourself Discord free tier (20 MB), Discord with Nitro (500 MB), email (25 MB), or just type in any size. Choose MP4, WebM or MKV for the file type you get back, and if you want to get exactly the file you want, you can also pick the codec, resolution, frame rate and bitrate yourself in Advanced settings.
  3. Compare and download Compare the original and the compressed versions side by side. Download it once you're happy.
The tool

Nothing you load here gets uploaded anywhere. The only things this page actually fetches over the network are the WebAssembly runtime (a build of FFmpeg's own libraries) served from assets.mrpogofu.com. Your video gets decoded, resized and re-encoded right here in your browser tab.

Drop a video here Or
Target

Source

Result

Pick your settings above, then hit Compress to get your result.

Advanced settings
Both are royalty free and play in basically every current browser. VP9 is smaller for the same quality, but VP8 encodes on more devices with older hardware. Only matters for WebM and MKV: MP4 above always means H.264.
Caps the shorter edge. Never upscales so asking for 1080p on a 720p source just keeps the original size.
Dropped frames, not blended. Only takes effect if it's actually lower than the source's own rate.
Picking a preset or a size above sets this for you. This is only here for taking it further by hand.
A single pass estimate aimed a little under the number, to leave room for it to run slightly over.
How often a full frame gets encoded rather than just the difference from the last one. Shorter seeks better, costs more bits.
Notes

Your video's audio comes through exactly as it was. Video files are almost never huge because of the audio. It's almost always the picture. So this tool only ever touches that. The original audio track gets copied across byte for byte instead of being re-encoded. Re-encoding audio just to squeeze out a few hundred KB isn't worth the quality hit you'd get.

"Save as" picks the codec to go with it. MP4 always means H.264. WebM and MKV both mean VP9, falling back to VP8 on a browser that can't encode VP9. The only difference between those two is the container: WebM is fussier about what audio it's allowed to hold, so if your source's track isn't Opus or Vorbis, asking for WebM quietly comes back as an .mkv instead, same picture, same VP9, just a container that isn't picky about the sound. Asking for MKV up front skips that guesswork entirely.

HEVC (H.265) is hit or miss. That's the format a lot of iPhones save video in by default. Some browsers can decode it but some can't. This tool has no way to tell if your browser supports it. If a video fails immediately with a codec error that may be why.

Licences & Credits