FFmpeg Cookbook

Discord Video Compressor

Auto-bitrate calculator + encoder that fits any clip under Discord caps (10 / 25 / 50 / 500 MB).

Fully local processing — your file never leaves the browser
🎮
Drag & drop a video or click to select
Formats: MP4, MOV, MKV, WebM, AVI · Max 500 MB
🎮
Free
10 MB
Free tier
(current cap)
Classic
25 MB
Nitro Basic
equivalent
Boost
50 MB
Level 2
boosted server
Nitro
500 MB
Nitro Full
subscribers
sec
e.g. 5 min = 300 s. Auto-detected on file select; you can override.
Processing… 0%
Original
MB
Compressed
MB
✓ Fits Discord
Download compressed video

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

Cap → recommended resolutionFree tier10 MB540puse 480p for long clipsaudio 64–128kNitro Basic25 MB720pcomfortable up to ~5 minaudio 128kNitro50 MB1080p5–8 min standardaudio 128kFor longer clips, lowering resolution stabilizes quality

* Actual results depend on source duration / complexity (illustrative example)

Popular uses
Discord free and Nitro size targetsGame clip sharing10MB/25MB long-clip tuning

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. 1

    Pick a video

    MP4 / MOV / MKV — drop or tap.

  2. 2

    Pick a target

    10 (free), 25 (Nitro Basic), 50 (Nitro), 500 (Boost lvl 3).

  3. 3

    Compress

    You get an MP4 you can drag straight into Discord.

What each setting means

Target size
Upper limit. Output is slightly under to leave a safety margin.
Resolution
Drop to 720p / 540p for long clips so the video bitrate doesn't collapse.

Recommended settings

Free 10MB · clip ≤30s
10MB, original resolution
Plenty of bitrate headroom.
Free 10MB · clip ≥3min
10MB, 540p or 480p
Keeps quality usable on long content.
Nitro Basic 25MB
25MB, 720p
Comfortable margin.
Nitro 50MB
50MB, 1080p
5min @ 1080p typically fits cleanly.

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.

Target 10MB (60s clip)
ffmpeg -i input.mp4 -c:v libx264 -b:v 1200k -maxrate 1320k -bufsize 2400k -c:a aac -b:a 128k -movflags +faststart output.mp4
Long clip → 540p + 10MB
ffmpeg -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.mp4

Browser 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.

What to do next