Compress Video for Discord: What the 20MB Cap Actually Measures

Sep 21, 2026

Discord checks your file size before compression, so the number your encoder writes to disk is the number Discord judges. That single fact decides how to approach the job: you are aiming at the size of the file in your folder, not at whatever Discord might produce afterwards.

Below: which ceiling applies to you, what Discord documents about codecs and client behaviour, and where the encoder settings come from.

Which number are you aiming at?

Pin the ceiling first, because it depends on the account and the server.

Discord's File Attachments FAQ states: "For non-Nitro subscribers, the maximum file upload is 20MB," and adds: "If you need more room regularly, Nitro Basic offers 50MB and Nitro offers up to 500MB."

Server Boosts move the ceiling too, but only inside the boosted server. Discord's Server Boosting FAQ lists "50MB Upload Limit for all members (server only)" at Level 2 and "100MB Upload Limit for all members (server only)" at Level 3. That (server only) is Discord's own parenthesis — a boost does nothing for your DMs.

Two details get lost in most write-ups: Level 1 does not raise the limit at all — in Discord's Account Caps table its upload row reads "Same" as the base tier — and the higher ceilings are written "for all members", not just for the people who paid for the boosts.

The two ladders do not stack. Discord's developer reference is explicit about how they combine:

"The file upload size limit applies to each file in a request. The default limit is 20 MiB for all users, but may be higher for users depending on their Nitro status or by the server's Boost Tier. The attachment_size_limit value provided when working with interactions is calculated as the maximum of these values."

Three things to take from that sentence:

  • Per file, not per message. The limit "applies to each file in a request," so three clips in one message are judged one at a time, not as a sum.
  • Maximum, not sum. A Nitro user in a Level 2 server gets the Nitro ceiling; a free user in a Level 3 server gets the server's.
  • The unit differs between the two pages. The developer reference says "20 MiB"; the help centre says "20MB". Discord publishes no conversion between the two, so treat the stated number as the number and check the official documentation if you are working right at the edge.

One qualifier belongs on every number above: Discord notes it is "currently experimenting with various file upload size limits," and that "select users may have the ability to upload larger file sizes." Check the current limit in the official documentation.

Where the encoder settings come from

This is the part most guides fill with a ready-made command line and a set of quality numbers. For the encoder options, check the official FFmpeg documentation for the encoder you are using — against the build on your own machine, because FFmpeg says so itself:

"The following documentation is regenerated nightly, and corresponds to the newest FFmpeg revision. Consult your locally installed documentation for older versions."

Option names, defaults and value ranges move between releases, so a command copied from an old forum post may still run and quietly do something other than what its author described.

What stream copy can and cannot do

What FFmpeg's documentation does state plainly is what happens when you do not re-encode at all:

"The simplest pipeline in ffmpeg is single-stream streamcopy, that is copying one input elementary stream's packets without decoding, filtering, or encoding them."

And the payoff, in FFmpeg's own words: "Since there is no decoding or encoding, it is very fast and there is no quality loss."

The documented scope is narrow and worth reading literally: stream copy is useful for "changing the elementary stream count, container format, or modifying container-level metadata" — that is the whole list. It cannot change resolution, codec or bitrate, so it is not by itself a way to bring an oversized clip under the cap.

More command breakdowns live in the FFmpeg guides hub.

Why H.264, and why not lean on Discord's own compression

Discord's FAQ lists the most common file types it accepts, and the video entry is written with the codec spelled out:

MP4 (Video encoded with H264, HEVC/H265, or AV1)

Note what that line is and is not. Discord introduces it as "the most common examples," not a closed whitelist, and it names three codecs as uploadable. What the documentation does not describe is how any of them plays back once uploaded — so there is no documented reason to prefer HEVC or AV1 here, and H.264 leaves the fewest unknowns.

The bigger reason to encode deliberately is the check timing. Discord describes it directly:

"Previously on mobile, we'd try to compress your file first and only tell you afterward if it was still too large, so the limit you saw didn't always match what actually applied. We've now moved mobile to the same pre-compression check that desktop has always used, so the number you see is the number that counts."

Because the check runs on your original, shrinking that original yourself is the only move that reliably changes the outcome. Discord spells out the counterintuitive consequence: "Desktop and iOS users should generally find uploads easier than before. On Android, where source files tend to be larger, you may hit the size limit more often than you did previously, even though the stated number is higher." The cap went up and some Android uploads got harder — not because Android has a lower cap, but because larger source files are what gets measured. More on that in Discord says your file is too large.

Try it right here

Runs in your browser. Your file is not uploaded anywhere.

Loading tool…

That is FFmpeg compiled to WebAssembly running in your browser tab: the file is read from disk, re-encoded locally, and handed back without being uploaded anywhere. Use it when you are doing this once, on a machine where you would rather not install anything. For the knobs instead of a preset, the video compressor exposes them, and all Clapr tools work the same way.

Same job, different chat app. The approach carries over; only the ceiling changes. See compressing video for Slack.

Troubleshooting

The file is under the cap and the upload is still refused. Check the size on disk rather than your intended target. If it genuinely is under, size is not the cause. One documented non-size reason, for images specifically, is NSFW scanning. Discord's FAQ: "To help keep users safe, we have both User Settings and Server Settings to scan images for NSFW content. If these settings are enabled and the system detects the image could be NSFW, it will block the upload."

The clip you sent from your phone looks worse. Discord's mobile clients have their own upload settings: a "Video Uploads" section where "Data Saver" makes videos "upload more quickly and consume less data," and a Data Saving Mode that sends images and videos "in lower quality through your cellular network." Discord does not publish what resolution or bitrate either produces.

Different Discord help pages quote different numbers. They do. The Account Caps page still shows "File Sharing Limit 10MB" for the base tier, while the File Attachments FAQ says 20MB and dates the change: "As of August 2026, the free upload limit is 20MB (up from 10MB)." Go with the more recently updated page.

Renaming the file did not help. Extension filtering in Discord's file upload components "only checks the file extension against the filename and does not inspect the file contents." A rename can pass a filter without changing what is inside the file; re-encoding is what changes the contents.

FAQ

What size should I aim for? Whatever your tier allows: 20MB free, 50MB on Nitro Basic, up to 500MB on Nitro, or the server's ceiling if it is boosted to Level 2 or 3. The limit is applied per file, and the account and server values are not added — Discord takes the maximum.

Does Discord compress my video for me? Not in a way that helps you get under the cap. Discord says the size check now runs before compression on both desktop and mobile — "the number you see is the number that counts." Discord does not document what encoder or settings its own compression uses.

Why does my upload fail on Android when it works on my laptop? Discord attributes this to the pre-compression check: "On Android, where source files tend to be larger, you may hit the size limit more often than you did previously, even though the stated number is higher." The cap is not lower on Android; the file being measured is bigger.

Do Nitro and Server Boost limits add together? No. The developer reference says the applicable limit is "calculated as the maximum of these values," so a Nitro user in a Level 2 server gets the Nitro ceiling, not the sum of the two.

Should I export HEVC or AV1 instead to save space? Discord lists MP4 with H264, HEVC/H265 or AV1 as uploadable, but publishes nothing about how each plays back afterwards. H.264 keeps the number of undocumented variables at zero.


Discord limits cited from the File Attachments FAQ, Server Boosting FAQ and developer reference, checked 16 September 2026. Discord has changed these numbers before — verify them against the official pages.

Clapr team

Clapr team

Compress Video for Discord: What the 20MB Cap Actually Measures | Clapr Blog