Video Compressor
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.
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.
- Drop in a video MP4, MOV, WebM, MKV. Pretty much anything your browser can already play.
- 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.
- Compare and download Compare the original and the compressed versions side by side. Download it once you're happy.
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.
WebM needs Opus or Vorbis audio to stay WebM. If the source's audio track is something else this quietly comes back as .mkv instead, holding the exact same picture.
Pick your settings above, then hit Compress to get your result.
Advanced settings
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.