Browser-side encoder · for Discord upload limits
Video Compressor for Discord
Pick the size your account allows, drop a clip, and get an H.264 MP4 that uploads on the first try. The encoding happens in this tab — the file never leaves your computer.
- H.264 + AAC
- No upload
- No account
- No watermark
Choose a video
Drop a video here
or choose a file from your computer
MP4 · MOV · M4V · WEBM · MKV
or paste a clip with Ctrl V
Choose the target size
Bars are drawn against the size of your original file.
Add a video to start.
Encoding
0%
— out of
What this handles
Anything the browser itself can decode. That is a shorter list than a desktop tool, and it is worth knowing before you drop a file:
| Container | Codec inside | Status |
|---|---|---|
| MP4 / M4V | H.264, AV1 | Works |
| MOV | H.264 | Works |
| WEBM | VP8, VP9, AV1 | Works |
| MKV | H.264, VP9 | Works |
| MP4 | HEVC / H.265 | Usually no — only with a platform decoder |
| AVI | MPEG-4 Part 2, DivX | No — Chrome and Edge cannot open the container |
Measured 2026-10-30 in Chromium 156 (Edge, Windows 11): MP4, MOV, WEBM and MKV files with H.264, VP9 and AAC audio all loaded and decoded; an MPEG-4 Part 2 AVI failed at the demuxer, and HEVC reported metadata but produced no frames. The page checks your file when you drop it, so you get told which of these it is instead of a stalled progress bar.
How a target size becomes a bitrate
The size limit is really a bitrate budget. Duration sets the divisor, so the same 10 MB is generous for 20 seconds and brutal for 10 minutes. Three numbers have to come out of the target before the encoder starts:
- Reserve roughly 1.5% of the target for the container, and subtract the audio track (96 kbit/s for stereo AAC).
- Divide what is left by the duration in seconds: that is the video bitrate in bits per second.
- Check bits per pixel per frame. Below about 0.06 the picture turns to mush, so the resolution steps down the ladder 1080p → 720p → 540p → 480p → 360p until the budget can carry it.
The first pass usually lands close, so the encoder measures the finished file and only re-runs if it overshot, scaling the bitrate by the measured ratio — twice at most, never changing resolution between passes. Worked example, measured on this machine: a 20.7 MB 1920×1080 clip, 30.44 s long, targeted at 10 MB, came out at 9.82 MB at 1280×720, all 30 frames per second, in a single pass that took 32 seconds.
Which size do I actually need?
Discord publishes a different number in different help pages, so here is each preset next to the limit it clears, with the page it came from:
| Preset | What it clears | Source |
|---|---|---|
| 10 MB | Every account and server: the Base file-sharing limit is 10 MB | Discord, Account Caps |
| 25 MB | No Discord tier sits at 25 MB. It matches Gmail's 25 MB attachment cap | Preset for a different destination |
| 50 MB | Nitro Basic, and Level 2 boosted servers | Discord, File Attachments FAQ & Server Caps |
| 100 MB | Level 3 boosted servers | Discord, Server Caps |
| 500 MB | Nitro | Discord, Account Caps |
The two numbers that contradict themselves: Discord's File Attachments FAQ says the free limit moved from 10 MB to 20 MB in August 2026, while the Account Caps table still lists Base at 10 MB, and Nitro is listed as 500 MB in one table and up to 1 GB in another. Both pages are live today. That is why 10 MB is the default here: it is the only number every live Discord page agrees on.
Questions
Does this upload my video anywhere?
No. Your browser decodes the file, encodes it again, and hands you a download. The page makes no network request after it loads — there is no server in this flow to send a video to.
What format comes out, and will Discord play it?
H.264 video in an MP4 container with AAC audio, which is what Discord embeds and plays in chat on desktop, web and mobile. The file is not a ZIP, not a GIF, and carries no watermark.
How long does compression take?
Faster than realtime on a desktop CPU: on this machine a 30-second 1080p clip reached 720p in 32 seconds. Nothing is played back, so a 10-minute clip does not take 10 minutes — it scales with pixels and your CPU, not with the clock. Keep the tab in the foreground anyway: browsers throttle background tabs.
Why is my result a little under the target?
The last pass is capped by the bitrate budget rather than filled to the byte, and container overhead is unpredictable to the kilobyte. Landing 2–8% under is the point: a file that just fits is a file Discord accepts.
Can I compress several videos at once?
No, and that is deliberate. This page does one file and does it in your tab; a queue would mean holding several decoders and several hundred megabytes of frames in memory at once, which is what makes browser compressors fall over on phones.
Does it work on a phone?
On Android Chrome, yes. iOS Safari has no video encoder exposed to the page, and this page detects that and says so up front rather than failing halfway through.
Sources
- Discord — Account Caps, Server Caps, and More (file sharing limit table, server upload levels)
- Discord — File Attachments FAQ (20 MB free limit from August 2026, Nitro Basic 50 MB, Nitro up to 1 GB)
- W3C — WebCodecs (the API doing the encoding)
- Mediabunny — the MP4 muxer and decoder demuxer, MPL-2.0, vendored in
vendor/