Discord Video Compressor
Auto-bitrate calculator + encoder that fits any clip under Discord caps (10 / 25 / 50 / 500 MB).
Discord upload limits (subject to change by Discord)
Discord's current limits are Free: 10 MB, Nitro Basic: 25 MB,
Level 2 boosted servers: 50 MB, and Nitro Full: 500 MB.
This tool assigns -b:v to target an average bitrate that fits inside the selected cap after
subtracting audio (128 kbps, or 64 kbps for clips over 5 min) and leaving a 5 % safety margin for container overhead.
Short clips (under ~30 s) can stay at 1080 p inside 10 MB. For videos longer than 5 minutes, the resulting video bitrate drops low enough that 720 p or lower is a better source resolution — consider picking Classic or higher for anything longer.
Equivalent FFmpeg command
CLI command for your current settings. Updates live as you change controls.
Pick a file and adjust settings — the command appears here. Visual concept
* Actual results depend on source duration / complexity (illustrative example)
What this tool does
- Free 10MB · Nitro Basic 25MB · Nitro 50MB · Server Boost 500MB
- Calculates target bitrate from duration
- Works on mobile and desktop browsers
- Files never leave your browser
How to use
- 1
Pick a video
MP4 / MOV / MKV — drop or tap.
- 2
Pick a target
10 (free), 25 (Nitro Basic), 50 (Nitro), 500 (Boost lvl 3).
- 3
Compress
You get an MP4 you can drag straight into Discord.
What each setting means
Recommended settings
Common pitfalls
Symptom: File still over 10MB
Cause: Bitrate math is approximate; complex scenes go over.
Fix: Set target to 9MB or trim duration.
Symptom: Quality is unusable
Cause: Trying to fit a long clip into 10MB.
Fix: Drop resolution to 480p or trim.
Symptom: Audio cuts out
Cause: Long clip + low bitrate.
Fix: Bump target up one tier or downscale video first.
Equivalent FFmpeg commands
Reference commands you can run on the desktop FFmpeg CLI.
ffmpeg -i input.mp4 -c:v libx264 -b:v 1200k -maxrate 1320k -bufsize 2400k -c:a aac -b:a 128k -movflags +faststart output.mp4ffmpeg -i input.mp4 -vf scale=-2:540 -c:v libx264 -b:v 600k -maxrate 660k -bufsize 1200k -c:a aac -b:a 64k -movflags +faststart output.mp4Browser support & limits
- Up to 500MB input (200MB on mobile)
- MP4 (H.264 + AAC) output only
Privacy
This tool runs ffmpeg.wasm directly in your browser. Files never leave your device — everything runs locally. Read the privacy policy →
Frequently asked questions
Are these caps current?
The tool offers Free 10MB / Nitro Basic 25MB / Nitro 50MB / Server Boost lvl 3 500MB as targets. Discord may change these without notice — if uploads start failing, double-check Discord's current limits.
Why does the file end up under target?
A 5% safety margin avoids container overhead pushing you over.
Can I get exactly 10.0MB?
Almost always — but expect ±a few hundred KB. Set 9.5MB if you need to be safe.
Does it work on mobile?
iOS Safari / Android Chrome work, but >200MB inputs hit memory limits.
Upload says "Payload Too Large" / "Request Entity Too Large"
Sometimes a corporate proxy or mobile carrier intercepts the upload, not Discord. Retry on Wi-Fi, or set the target one tier lower (9MB instead of 10MB).
What happens if I squeeze a long clip into 10MB?
Video bitrate collapses, motion-heavy scenes turn into block soup. For 3+ minute clips, drop the resolution to 540p / 480p or trim duration first.
Can I send a GIF with this?
No — this tool outputs MP4. Use the Video → GIF tool for GIFs, but for Discord MP4 is almost always smaller and prefer it.
Can it handle transparent video (alpha channel)?
No. MP4 + H.264 has no alpha; transparent regions become black. Use the Format Converter to WebM (VP9) if you need transparency, or pre-bake the alpha.
Will OBS / Loom / macOS screen recordings work?
Yes. Variable-frame-rate (VFR) screen recordings are normalized to a stable frame rate during encode.
Related tools
Related FFmpeg recipes
In depth: context unique to this tool
Why Discord's upload limit isn't a single number
Discord's video upload cap is actually a matrix of 'account tier × file type × server boost level' rather than one figure. As of 2026: free accounts get 10 MB, Nitro Basic 25 MB, Nitro 50 MB, and Server Boost Level 3 channels (14 boosts) up to 500 MB. Webhook and API uploads use yet another limit. Half of 'I have Nitro but the upload fails' reports are actually about the server's boost level, not the user's plan.
Another easy-to-miss constraint: 10 files per message. If you batch several small clips, hitting that count limit causes silent send failures. This tool processes one input → one output, so concatenate first with the [video merge tool](/en/tools/concat/) if you have a multi-clip story.
The "Payload Too Large" error is usually not Discord
When users see "Payload Too Large" on a file that's clearly under the cap, the rejection almost never originates inside Discord. The most common culprits are intermediate proxies and mobile carrier WAFs (especially MVNOs, corporate networks, and uploads via certain VPNs). Switching to Wi-Fi or dropping the target by 1 MB (e.g. 10 MB → 9 MB) usually lets the upload through.
This tool already applies a 0.92 safety factor, but if errors persist try setting the target manually to 8 MB, or run a second pass in desktop FFmpeg to tighten the bitrate.
Gameplay clips and OBS recordings have quirks
The two most common video types shared on Discord are gameplay clips (Apex, Valorant, Minecraft) and OBS / NVIDIA ShadowPlay screen captures. Both tend to be recorded with variable frame rate (VFR); naive WASM encoding can drift audio out of sync. This tool normalizes input to constant frame rate (CFR) so most VFR captures convert cleanly.
ShadowPlay also defaults to HEVC encoding, and Discord's in-app preview is known to show a black frame for HEVC with the hev1 tag. Rather than just compressing the HEVC file further, this tool transcodes to H.264 so the recipient's preview always plays.