Discord Video Pixelated? Fit the Size Limit Cleanly
You record a good clip, drop it into Discord, and it either refuses because it is too big, or it uploads and looks like a watercolor. The cause is nearly always the same: a file that was forced under a size limit without enough thought about where the bits go.
The fix is arithmetic, not magic. Once you know how many bits you have per second of video, you can pick the right resolution and settings, and the result will be as clean as that budget allows.
The limit, and why it keeps moving
Discord’s upload limits have changed several times, and different sources disagree because they were written at different moments. When I checked in late October 2026, Discord’s own help material said the free upload limit had been raised to 20 MB on August 14, 2026, up from 10 MB, with higher limits for Nitro and for boosted servers. Sources disagree about the larger Nitro figures, so I will not quote one. Check the number that your app shows when you try to upload, since it is the one that counts today.
Discord’s help pages also list the supported video codecs for MP4 as H.264, HEVC and AV1. H.264 plays everywhere and is the safe choice. A 20 MB cap is tight for video, and everything below follows from that.
Why files get blocky when squeezed
A video’s size is roughly its bitrate multiplied by its duration. If you have 20 MB and a 60 second clip, you have about 2.7 Mbps in total, and that has to cover video and audio. If you have a 3 minute clip, the budget falls to under 1 Mbps. At 1080p, those numbers are far below what looks clean.
I measured how quality falls with bitrate on a 1080p clip: 1 Mbps scored 31.0 dB PSNR, 2 Mbps scored 34.4 dB, 4 Mbps scored 38.3 dB and 8 Mbps scored 42.4 dB. Below about 2 Mbps, the picture degrades quickly. That is where the “pixelated” look comes from. It is not that Discord is doing something bad, it is that your file is carrying too little information per second.
Do the bitrate math
The formula is simple. Take the size limit, leave a margin, convert to bits and divide by the duration.
target_total_kbps = (size_MB * 8 * 1000 * 0.92) / seconds
video_kbps = target_total_kbps - audio_kbps
The 0.92 leaves about 8 percent safety, because container overhead and variation can push a file over the limit. Some people use megabytes of 1000 kB and some of 1024, so a margin protects you.
Worked examples for a 20 MB limit and 96 kbps audio:
| Clip length | Total budget | Video budget |
|---|---|---|
| 15 s | about 9.8 Mbps | about 9.7 Mbps |
| 30 s | about 4.9 Mbps | about 4.8 Mbps |
| 60 s | about 2.45 Mbps | about 2.35 Mbps |
| 2 min | about 1.2 Mbps | about 1.1 Mbps |
| 4 min | about 0.6 Mbps | about 0.5 Mbps |
Now match resolution to the budget. In my 720p versus 1080p test, 720p was equal or better at about 1 Mbps, they were close at 2 Mbps, and 1080p won clearly from 4 Mbps. So:
- Under about 1.5 Mbps: use 720p. In my test it was a hair ahead of 1080p, and it decodes lighter on weak phones.
- Between 1.5 and 4 Mbps: either works. For calm content, 1080p was still slightly ahead at 2.35 Mbps, and for busy content I would pick 720p.
- Above 4 Mbps: 1080p.
The details are in 720p versus 1080p, does it matter.
The best lever is the clip length
Trim the clip. If you are sharing a moment, cut to the part that matters. Halving the duration doubles the bitrate you can afford. A 30 second highlight at 4.8 Mbps looks far better than a 60 second clip squeezed to 2.4 Mbps. Cut dead time at the start and the end, and consider splitting a long video into two messages.
Use a proper encoder pass
You have three common ways to hit a target size, and they differ in quality.
Single pass average bitrate. The encoder guesses how hard the video is. It works, but it may miss the size and spread bits unevenly.
Two pass. The first pass studies the video, and the second distributes bits to where they are needed. It is the standard way to hit a size.
Constant quality with a cap. Choose a CRF and a maximum bitrate. Quality is steady, and the cap limits the size. You must check the result, and may need to rerun at a higher CRF.
I tested these on a 10 second 1080p clip with a 2 Mbps target, so a 2,500 kB budget:
| Method | File size | PSNR |
|---|---|---|
| Single pass ABR 2,000 kbps | 2,470 kB | 34.69 dB |
| Two pass 2,000 kbps | 2,625 kB | 35.27 dB |
| CRF 27 with a 3 Mbps cap | 3,969 kB | 37.45 dB |
The numbers need to be read carefully. The single pass landed under target. The two pass ended 5 percent over the nominal target and scored about 0.6 dB higher, which is mostly explained by those extra bytes. The constant quality version scored highest, but at 3,969 kB it is far above the budget, so it is not a fair comparison. The lesson is that the simple methods landed within about 5 percent of the target here, and two pass is not a dramatic win by itself. For a hard limit, check the file size afterwards and keep a margin. If you overshoot, lower the bitrate and run again.
A command that works
Two-pass encoding for a 30 second clip aiming at 4.5 Mbps video:
ffmpeg -y -i clip.mp4 -c:v libx264 -preset slow -b:v 4500k \
-pass 1 -an -f null /dev/null
ffmpeg -i clip.mp4 -c:v libx264 -preset slow -b:v 4500k \
-pass 2 -c:a aac -b:a 96k -movflags +faststart discord.mp4
On Windows replace /dev/null with NUL. To drop to 720p for a lower budget, add a scale filter to both passes:
-vf "scale=-2:720:flags=lanczos"
Then check the size. If it is over, reduce the video bitrate by about a tenth and run again.
A direct test at the Discord budgets
To put real numbers on the resolution choice for size-limited clips, I ran a test with the two budgets from the table above. I took a 5 second 1080p clip, and for each of two video bitrates (1.1 Mbps, which is what a 2 minute clip would get, and 2.35 Mbps, which is a one minute clip) I encoded it at 1080p, 720p and 540p with two passes at the slow preset. For comparison I scaled each result back up to 1080p and measured PSNR against the original.
| Video bitrate | Resolution | File size | PSNR |
|---|---|---|---|
| 1.1 Mbps | 1080p | 773 kB | 32.53 dB |
| 1.1 Mbps | 720p | 731 kB | 32.76 dB |
| 1.1 Mbps | 540p | 714 kB | 32.28 dB |
| 2.35 Mbps | 1080p | 1,572 kB | 35.89 dB |
| 2.35 Mbps | 720p | 1,510 kB | 34.84 dB |
| 2.35 Mbps | 540p | 1,486 kB | 33.53 dB |
Three things stand out. First, at the very low budget the three resolutions are within half a decibel of each other, with 720p on top. At that point, none of them looks good, and the choice matters less than trimming the clip. Second, at 2.35 Mbps, 1080p was a full dB ahead of 720p and 2.4 dB ahead of 540p, so a one minute clip does not have to drop to 720p to stay clean. Third, the file sizes: even with two passes, a 5 second clip overshot its nominal target by roughly 7 to 12 percent (1,572 kB against the 1,469 kB you would expect at 2.35 Mbps). Short clips give the rate control little room to correct, so for a hard limit leave a margin larger than you think you need, and always check the finished file.
I should say what the test does not show. It uses PSNR after scaling back up, which favors resolutions close to the original, and one clip of an animated film. On a phone screen, the smaller encodes may look closer to the big one than the numbers suggest. Use the numbers as a starting guess, and look at your clip.
Screen sharing is a different thing
People sometimes mix up sharing a recorded clip with live screen sharing. Live screen share quality has its own rules, which are set by your account and the server, and from what I found, free users are limited to 720p at 30 fps while higher tiers get more. If the live stream looks blocky, it is a different problem from an uploaded clip: it is limited by your upload speed and the live encoder. Lowering the frame rate for text-heavy content, and choosing the “prioritize clarity” kind of option if the app offers one, usually looks better than keeping a high frame rate.
Audio budget
For a short clip, audio costs very little: 96 kbps AAC is only 12 kB per second, or 720 kB per minute. At a very small file size it is still worth choosing mono for voice-only content, or lowering the audio to 64 kbps, to save a few percent. But do not cut audio too hard, since crunchy sound makes the whole clip feel worse. If the clip has no useful sound, remove the audio track altogether and use the whole budget for video:
ffmpeg -i clip.mp4 -an -c:v libx264 -b:v 5000k -preset slow out.mp4
Why not just let Discord handle it?
Discord, like most chat apps, may compress or transcode what you send, or it may reject files over the limit. When it compresses, you lose control over how, and the settings are typically chosen for speed and size rather than looks. Preparing the file yourself gives you the decision. It also means the clip looks the same for everyone, regardless of device.
If you send the same clip into several servers, upload it once and share the link or forward the message, so that you do not create several slightly different copies.
Tools you can use
You do not need the command line. HandBrake lets you set a constant quality or an average bitrate, choose the resolution and trim the clip. Some video editors let you set a bitrate on export. Online compressors exist too, but check what they do, since many reduce the resolution drastically and apply heavy compression, and some leave watermarks. Whichever you use, check the exported file size, look at the hardest part of the clip, and compare with the original.
For HandBrake users, the article on why HandBrake output looks pixelated describes the settings that matter.
Fixing a clip that is already blocky
If the video you have is already pixelated, you can limit further damage. Do not compress it again at a high ratio. Compress once, from the best source you have. If the original recording exists, go back to it.
If the original is gone, a cleanup can smooth the blocks before the final compression, and it also helps the encoder, since smoother input compresses better. You can see what that does on a short sample with the free preview.
Screen recordings are a special case
A lot of Discord clips are game or screen recordings. These have sharp text, fast motion and effects. Record at a high bitrate first, then compress once for Discord. If your recorder offers a quality mode, use it. The article on OBS recordings that look pixelated when moving covers the recording side. For the sharing step, consider lowering the frame rate from 60 to 30 for a small clip, since halving the frames roughly doubles the bits per frame, though motion will be less smooth.
Phone clips
On a phone, the Discord app may compress a video before sending, and the details have varied. I found a note that on mobile the size is now checked before Discord compresses the video, which suggests a large phone video may be rejected rather than silently shrunk. If that is what you see, compress it yourself first, at a target below the limit, so that you decide how the compromise is made rather than leaving it to the app.
Many phone gallery apps have a built-in trim and a compress option. If you use a compression app, check the output at full size, since some apps use very low bitrates.
Other ways to share a longer or better clip
If the clip needs to be sharp or long, a size-limited upload may be the wrong tool. Alternatives:
- Upload to a video host or a cloud drive and post a link. Discord will usually show an embed or a link preview.
- Split it into two or three parts at natural cuts.
- Use a server with a higher limit if you have one.
- Share a GIF or a short loop only for tiny moments, though GIF files are often larger and worse looking than a short MP4.
A short routine you can repeat
Once you have worked through it once, the whole thing takes a couple of minutes. Check the limit in the app. Trim the clip to what matters. Divide the limit, less 8 percent, by the number of seconds, and subtract the audio. If the result is below about 1.5 Mbps, choose 720p, otherwise stay at 1080p. Encode with two passes. Look at the file size and the hardest few seconds. If it is over the limit, reduce the bitrate by 10 percent and run it again.
Keep the original recording until you are happy with the result. If the limit changes again next month, as it has before, you can simply repeat the steps with the new number, without having to start from a degraded copy.
Mistakes I would avoid
Compressing a compressed copy. If you already shrank a clip once and it is still too big, go back to the original rather than shrinking the small copy again. Each pass loses detail, and in my five-pass test the quality kept falling by 1 dB or more per generation.
Choosing the resolution by habit. A clip does not have to be 1080p. Pick the resolution the bitrate can carry.
Forgetting the audio. A large audio track on a tiny budget wastes bits, and a tiny one makes speech muddy. Aim for 64 to 128 kbps.
Cutting it too close to the limit. A file that is 20.1 MB will be refused. Aim for 90 to 92 percent of the limit, and check.
Summary
Discord clips look pixelated when too few bits are spread over too many pixels and too much time. Work out the bitrate from the size limit and the duration, choose 720p when the budget is under about 1.5 Mbps, trim the clip, and compress once from the original with two passes or a capped quality mode. Check the limit in the app because it has changed, and keep a safety margin of about 8 percent.
Got a pixelated video right now?
Upload it and see a free before and after preview in about a minute.
Fix my videoFrequently asked questions
What is the Discord video upload limit?
As of mid August 2026, Discord's help pages list 20 MB for free users, and higher limits with Nitro and server boosts. Limits change, so check the app before you compress.
Why does my video look pixelated on Discord?
Usually because it was shrunk to fit the size limit with too few bits for its length and resolution, or because it was compressed several times on the way.
How do I compress a video for Discord without losing quality?
Work out the bitrate from the size and duration, lower the resolution if the bitrate is low, trim the clip, and encode with two passes or a capped quality mode.
Should I use 720p for Discord clips?
When the bitrate is under about 1.5 Mbps, 720p is as good or slightly better than 1080p. Above that, 1080p starts to pull ahead.
Which codec does Discord support?
Discord's help pages list H.264, HEVC and AV1 for MP4 video. H.264 is the safest for compatibility.
Keep reading
Compress Video for Email Without Losing Quality
Fit a video under email attachment limits without it turning blocky. Real size math for Gmail and Outlook, plus tested settings.
720p vs 1080p: Does the Difference Matter?
A measured comparison of 720p and 1080p at the same bitrates, plus when the extra pixels pay off and when a lower resolution looks better.
CRF Explained: Compress Video Without Losing Quality
What CRF means in x264 and x265, which value to pick, and measured file size and quality for CRF 18 to 33 on a real 1080p clip.
Why Screen Recordings Look Blurry (and How to Fix)
Blurry screen recordings come from scaling, chroma subsampling and low bitrate. A tested fix for sharp text in tutorials and demos.