What Are the Best Codec Settings for YouTube Uploads?

My videos look sharp before uploading, but YouTube compression noticeably reduces the quality after processing. Which codec, bitrate, resolution, and export settings work best for high-quality YouTube uploads?

Don’t judge the upload while YouTube is still showing the first processed version. Higher-resolution encodes can take hours, especially at 1440p or 4K. Upload as unlisted, wait until every resolution is available, then check it before publishing.

For a dependable SDR export, use MP4 with H.264 High Profile, progressive scan, VBR, Rec.709 color, and the same frame rate as your source. Good targets are 8 Mbps for 1080p30, 12 Mbps for 1080p60, 16 Mbps for 1440p30, 24 Mbps for 1440p60, and 35–45 Mbps for 4K30. Use 53–68 Mbps for 4K60. AAC-LC stereo at 48 kHz and roughly 320–384 kbps is plenty.

Export at the project’s real resolution rather than scaling 1080p footage to 4K and expecting new detail. If storage and upload time are not concerns, a high-quality intermediate such as ProRes can avoid an extra heavy compression pass, but H.264 at a sensible bitrate is usually hard to distinguish after YouTube re-encodes it. Noise, film grain, foliage, confetti, and fast gameplay suffer most, so light noise reduction before export can sometimes improve the final result more than throwing additional bitrate at it.

The hidden catch is that your export codec does not control YouTube’s playback codec because the site re-encodes everything. I’d slightly push back on never upscaling: exporting clean 1080p footage at 1440p can sometimes get a better-looking YouTube transcode, especially for gameplay or fine textures, even though it creates no new detail. Treat it as a workaround, not a guarantee, and compare the final “Stats for nerds” codec before deciding whether the larger upload is worthwhile.

Don’t judge the upload while YouTube is still serving the first low-quality encode. Upload as unlisted, wait until the full 1080p, 1440p, or 4K option appears, then publish. Higher resolutions and 60 fps can take hours to finish processing.

For a reliable SDR export, use MP4 with H.264 High Profile, VBR, progressive scan, 4:2:0 color, BT.709, and the same frame rate as your source. Reasonable targets are 8 Mbps for 1080p30 or 12 Mbps for 1080p60, 16/24 Mbps for 1440p, and 35–45/53–68 Mbps for 4K. AAC-LC at 48 kHz is fine for audio. Going far above those rates mostly creates a larger upload rather than protecting you from YouTube’s re-encode.

@foxhq’s 1440p workaround can help, particularly with fast motion and detailed gameplay, but I wouldn’t make it the default for every video. Try a short representative clip at native 1080p and upscaled 1440p, let both finish processing, and compare them at normal playback size. Grain, sharpening halos, and noisy shadows often hurt the final result more than the export codec, so cleaning those up before export can matter more than throwing bitrate at the file.

More bitrate is not the cure once your exported file already looks identical to the timeline. At that point, a 100 Mbps H.264 upload mostly costs extra time because YouTube still builds its own playback versions. The better target is a clean, visually transparent master with no frame-rate conversion, crushed blacks, sharpening halos, or unnecessary noise.

For a normal SDR upload, I’d use H.264 High Profile in MP4, progressive, constant frame rate, Rec.709, limited/video-range levels, 4:2:0, and a keyframe interval of about two seconds. If the encoder offers quality-based mode, CRF 16 to 18 is a sensible range for x264. If it only offers bitrate controls, use two-pass VBR and roughly the ranges already posted. Two-pass encoding matters more when you need to keep the file reasonably small. It offers little benefit if you are exporting a large intermediate such as ProRes.

Check the color settings carefully. A full-range versus limited-range mismatch can make the YouTube version look washed out or overly dark, which people often mistake for compression damage. Variable-frame-rate phone recordings and screen captures can cause similar trouble. Convert those to a constant frame rate before the final edit rather than letting the export encoder guess. Avoid exporting 24 fps footage at 30 fps or 30 fps footage at 60 fps unless you deliberately created the extra frames.

The 1440p upscale trick mentioned above is worth testing, but it is mainly an attempt to get a more favorable playback encode. Use a decent scaler and keep sharpening low, because scaling artifacts get compressed too. I would test it on motion-heavy material, not automatically upscale every talking-head video. For native 4K footage, export native 4K. For clean 1080p footage, a strong 1080p master may already be the better use of storage and upload time.

Finally, inspect the downloaded export before uploading, not only the editing preview. If that file already has banding or blocky shadows, YouTube will exaggerate it. A short test containing fast motion, gradients, dark scenes, and fine texture will tell you more than uploading an entire video with five different bitrate guesses.

The hidden trap is the encoder preset itself. Two files can both say “H.264, 12 Mbps” while the fast one looks noticeably worse because the encoder spent less effort deciding where to use those bits. Apparently the bitrate number gets all the attention while the quality/speed slider quietly wrecks the furniture.

For a straightforward SDR upload, I’d use MP4, H.264 High Profile, progressive 4:2:0, constant frame rate, and Rec.709. Keep the original frame rate and resolution. The bitrate ranges already posted are sensible, with the upper end being safer for gameplay, water, foliage, crowds, and other material that compression hates. AAC-LC stereo at 48 kHz and 320 to 384 kbps is fine. A two-second keyframe interval is a safe choice, though it is not going to perform miracles.

Where the export dialog gives you a choice, avoid “fastest” or “performance” encoding. Pick “quality” or “maximum quality.” A decent software H.264 encode will usually preserve more detail at a given bitrate than an aggressively fast hardware encode. Modern GPU encoders can still produce perfectly good uploads, especially when you give them extra bitrate, but using the fastest hardware preset to save six minutes and then uploading the result at a marginal bitrate is asking YouTube to compress artifacts that are already there.

HEVC and AV1 can create smaller upload files, but they do not unlock matching playback codecs or prevent YouTube from recompressing the video. Use them if they fit your storage or upload-speed situation, not because you expect YouTube to respectfully preserve your beautiful AV1 master untouched. H.264 remains the least troublesome delivery choice. ProRes is useful when you want a near-lossless master and have plenty of bandwidth, but it is excessive for many ordinary videos.

I’m with @sir_widget on testing the exported file rather than trusting the editing preview. Play it locally at full resolution and inspect motion, gradients, text, and dark areas. Then upload a short unlisted sample and manually force the highest YouTube quality instead of leaving the player on Auto. If the local export is clean but YouTube is soft, test the 1440p workaround. If the local export is already smeared, changing the upload resolution merely gives you a larger version of the same problem.

The codec you see in Stats for nerds on a fresh unlisted upload is not always what your viewers get later. YouTube tends to hand out VP9 or AV1 to videos once they pull enough traffic, and low-view or brand new uploads often sit on the older AVC transcode longer. So if you run the 1440p test that @swifthivenet and @foxhq mentioned, compare it a few times over a couple days, not just right after processing finishes. I’ve seen people write off the upscale trick based on a single early check that never left the worst transcode.

The rest of the advice here is sound and honestly most of it comes down to the same thing: give YouTube a clean master and stop worrying about matching its playback codec, because you can’t. Where I’d push back a little is the amount of attention grain and noise reduction is getting. Light cleanup helps, sure, but aggressive denoise before export smears fine texture in a way YouTube will happily preserve, and then you’re stuck with a soft video and no artifacts to blame. If your source is genuinely noisy, fix it gently or leave it and spend the bits.

One practical thing nobody flagged: keep your color range setting consistent between the export and whatever the encoder tags in the file. @sir_widget is right that a range mismatch reads as compression damage, but the sneaky version is when the encoder outputs limited range video and tags it as full, or the reverse. Some editors let those drift independently. If your export looks fine locally and washed out only on YouTube, that’s the first place I’d look before touching bitrate.