Understanding codecs and containers is the single most useful technical skill a video creator can build — here is everything you need to know without the engineering degree.
If you have ever exported a video, gotten confused by the alphabet soup of H.264, ProRes, DNxHD, and MP4, or wondered why a file looks great in your editing software but comes out blurry on YouTube, you are not alone. Video file formats and codecs are genuinely confusing because the industry stacks layers of terminology on top of each other without always explaining what each layer does. This guide untangles those layers one at a time, starting with the most fundamental distinction — the difference between a container and a codec — then moving through the formats you will actually encounter in a real creative workflow.
A container is the file format — the wrapper that holds everything together. It is what you see when you look at a file extension: .mp4, .mov, .mkv, .mxf. A container can hold multiple streams of data at once: a video stream, one or more audio streams, subtitle tracks, metadata like timecode, and more. The container does not define how the video is compressed — it only defines how all those streams are organized and packaged inside a single file.
A codec (short for coder-decoder) is the algorithm that compresses and decompresses the actual video image data. The codec determines how much space the video takes up, how much processing power is needed to play it back, and how much visual information is retained or discarded in the compression process. A .mov file, for example, can contain video compressed with H.264, H.265, ProRes, or several other codecs — the container does not lock you into one codec.
The practical takeaway: when someone asks what format a video is in, the complete answer covers both the container and the codec. 'It is an MP4' tells you the wrapper. 'It is an H.264 MP4' tells you the full picture.
H.264 (also called AVC) is the most widely used delivery codec in the world. It compresses video aggressively using interframe compression — rather than saving every frame in full, it stores complete keyframes periodically and then only saves the differences between subsequent frames. The result is a very small file that plays back on virtually any device, browser, or platform. The tradeoff is that heavy compression makes H.264 footage difficult to color grade and edit efficiently, because the encoder has discarded information it deemed redundant.
H.265 (also called HEVC) is H.264's successor and achieves roughly the same image quality at about half the file size, or significantly better quality at the same file size. It is increasingly common for modern camera footage and streaming delivery. The drawback is that H.265 is more demanding to decode, which means older computers may struggle with smooth playback, and some platforms still handle it less universally than H.264.
ProRes is Apple's family of editing codecs, widely used in professional post production on macOS. Unlike H.264, ProRes uses intraframe compression — every frame is stored as a near-complete image, making it easy to edit, color grade, and process. ProRes comes in several tiers: ProRes 422 Proxy, ProRes 422 LT, ProRes 422, ProRes 422 HQ, and ProRes 4444. Higher tiers preserve more color information and are larger. ProRes is excellent for editing and archiving but produces large files unsuitable for direct delivery to streaming platforms.
DNxHD and DNxHR are Avid's equivalent to ProRes — intraframe editing codecs designed for professional post production workflows. DNxHD targets HD resolutions while DNxHR covers higher resolutions. They are common in broadcast and film environments and are natively supported in DaVinci Resolve and most professional editing applications. Like ProRes, they produce large files and are intended for editing and mezzanine use, not final delivery.
AV1 is an open and royalty-free codec developed by the Alliance for Open Media. It achieves impressive compression efficiency — better than H.265 in many scenarios — and is increasingly used for streaming delivery on YouTube, Netflix, and web browsers. Encoding AV1 is computationally intensive, so most creators do not export in AV1 directly; rather, upload platforms encode to AV1 on their end from the file you provide.
This is one of the most practically important distinctions in video post production. Delivery codecs — primarily H.264 and H.265 — are optimized to produce small files that play back easily on end-user devices and platforms. They achieve their small sizes through heavy compression, which discards color information and makes each frame dependent on surrounding frames. This interframe structure is efficient for playback but creates problems when you try to edit the footage, because your software has to decode multiple frames just to render a single one.
Editing codecs — ProRes, DNxHD, DNxHR, and similar formats — are designed for the opposite use case. They use intraframe compression, meaning every frame is encoded independently. Your software can jump to any frame instantly, grades propagate cleanly, and the image holds up through multiple processing passes without compounding artifacts. The tradeoff is file size: ProRes 422 HQ at 1080p60 can run to several gigabytes per minute of footage.
A mezzanine format is an intermediate master — a high-quality file you keep between the camera original and your final delivery encode. If your camera shoots in H.264, you might transcode to ProRes before editing, then export a ProRes master, and finally encode that master to H.264 for YouTube. The mezzanine sits in the middle and preserves quality through the production chain.
A proxy is a lower-resolution, lower-bitrate copy of your original footage that you edit with instead of the camera original. When you are done editing, you relink to the original files for export. Proxies exist to solve a performance problem: high-resolution footage from cinema cameras, mirrorless cameras shooting 4K or 6K, or RAW formats can overwhelm a laptop or mid-range desktop during playback, causing dropped frames, stuttering, and slow export times.
Most professional editing applications — DaVinci Resolve, Premiere Pro, Final Cut Pro — can generate proxies automatically inside the application or via a dedicated media management workflow. A common proxy setup is ProRes 422 Proxy or DNxHD LB at half or quarter resolution. The editing experience becomes smooth because the files are lightweight, and the final export quality is unaffected because it draws from the originals.
Proxies are especially valuable when editing on a laptop in the field, working with RAW or log footage from cinema cameras, or collaborating with an editor who does not have access to the original drive. If your timeline playback is choppy and your hardware is otherwise capable, generating proxies is almost always the right call before spending hours troubleshooting.
Bitrate is the amount of data used to encode one second of video, measured in megabits per second (Mbps). Higher bitrate generally means more data is available to represent each second of footage, which can mean better image quality — but the relationship is not linear, and bitrate alone does not determine quality. A high-efficiency codec like H.265 at 15 Mbps can look visually similar to H.264 at 25 Mbps. Codec efficiency matters as much as the number.
When you export a video, you typically choose between constant bitrate (CBR), where every second of video gets the same amount of data, and variable bitrate (VBR), where complex scenes get more data and simple scenes get less. For most delivery use cases, VBR produces better results at a given average file size. Many export dialogs also offer a target bitrate and a maximum bitrate — the encoder tries to stay near the target while not exceeding the maximum on complex frames.
For YouTube and major social platforms, uploading at a higher bitrate than you might expect is actually beneficial. These platforms re-encode your video on their servers, and starting with a higher-quality source file means their encoder has more to work with, resulting in a better-looking final stream. YouTube's own documentation recommends 8 Mbps for 1080p30 H.264 uploads as a minimum; uploading at 16-20 Mbps gives their encoder more headroom.
Chroma subsampling describes how color information is stored relative to brightness information. Human vision is more sensitive to changes in brightness (luma) than changes in color (chroma), so most codecs store color at a lower resolution than brightness as a compression strategy. The subsampling notation you will see is a three-number ratio like 4:2:0, 4:2:2, or 4:4:4.
In 4:2:0, color information is sampled at one-quarter the resolution of the luma channel — every four pixels share one set of color values. This is the standard for H.264 and H.265 delivery files and most consumer camera footage. It is completely fine for most delivery contexts. In 4:2:2, color is sampled at half the luma resolution, giving the encoder more color detail to work with — this is what ProRes 422 uses and why it grades more cleanly. In 4:4:4, color and luma are sampled at the same full resolution, used for high-end compositing and green screen work where precise color information is critical.
For editing and color grading, 4:2:2 or 4:4:4 footage gives you more latitude and cleaner results, especially when pulling chroma keys, working with saturated colors, or making significant hue adjustments. For final delivery to streaming platforms, 4:2:0 in H.264 or H.265 is the standard expectation and performs perfectly well.
For YouTube, the widely recommended export format is H.264 in an MP4 container. Use a color space of Rec. 709 for standard dynamic range content, or HDR10 if you are delivering HDR. Frame rate should match your timeline: 24, 25, or 30 fps for most content, 60 fps for gaming or high-motion video. Resolution should be 1920x1080 for 1080p or 3840x2160 for 4K. Set the bitrate between 16 and 25 Mbps for 1080p content and between 35 and 68 Mbps for 4K — the higher end gives YouTube's encoder more to work with. Use VBR with two passes for the best quality-to-size ratio.
For Instagram Reels and TikTok, the platform will compress your video regardless of what you upload, so the goal is to give it the best possible source. Export at 1080x1920 (vertical 9:16) for Reels and TikTok, H.264 MP4, 15-20 Mbps, and avoid pre-compressing with aggressive settings that will compound when the platform re-encodes. Uploading a clean, slightly over-bitrate H.264 file consistently outperforms trying to outsmart the platform's encoder.
If you are delivering a file to a client, a broadcast network, or a post-production house, ask for their delivery specifications before you encode. Professional delivery often requires ProRes, DNxHD, or MXF containers with specific audio configurations, and guessing incorrectly wastes time. When in doubt, a ProRes 422 HQ master is accepted by virtually every professional destination.
A clean codec workflow for most creators looks like this: ingest your camera footage, generate proxies if playback is sluggish, edit against the proxies or originals, export a ProRes 422 HQ mezzanine master from your editing software, and then encode your delivery files from that master. If you are sending directly to YouTube or social from your editor, use H.264 MP4 at the settings above. Keeping a high-quality master means you can re-export in any format later without going back to the edit.
The most common mistake beginners make is exporting from their NLE in H.264 at a low bitrate, noticing quality loss, and then re-encoding that compressed file to try to fix it. Every generation of lossy compression compounds the artifacts from the previous one. Always encode your delivery file from the highest-quality source available — ideally your mezzanine master, not a previously compressed export.
You do not need to memorize every codec option available in your export dialog. Knowing the difference between delivery codecs and editing codecs, understanding that bitrate affects quality but efficiency matters too, and always starting from a clean high-quality source will take you further than any specific setting.
MP4 and MOV are both containers — wrappers that hold video, audio, and metadata. MP4 is an open standard with near-universal compatibility across devices, browsers, and platforms. MOV is Apple's container format and is common in professional macOS workflows. Both can contain the same codecs, including H.264 and H.265. For delivery to social platforms, MP4 is generally the safer choice for maximum compatibility.
H.265 achieves better compression efficiency than H.264 — it can produce the same visual quality at roughly half the file size, or noticeably better quality at the same file size. However, H.265 requires more processing power to encode and decode, which can cause playback issues on older hardware and software. For delivery, H.265 is excellent when supported. For broad compatibility — especially if you are sharing files with people on older computers or embedding video on websites — H.264 remains the safer and more universally supported choice.
YouTube re-encodes every video you upload using its own compression settings to optimize for streaming delivery at various bandwidths. This re-encoding will always reduce quality to some degree compared to your source file. Uploading a higher-quality source file with a generous bitrate gives YouTube's encoder more information to work with and results in a better-looking final stream. Uploading an already heavily compressed file compounds the quality loss. Exporting at 16-25 Mbps for 1080p content before uploading is a reliable way to minimize visible degradation.
You need proxies when your editing software cannot play your footage back smoothly in real time at full resolution. Signs include dropped frames during playback, slow scrubbing through the timeline, long render times for simple effects, and high CPU or GPU usage during playback. If your footage is 4K or higher, was shot in a log profile, or uses a highly compressed codec that your system struggles to decode, proxies will make a significant difference. Most professional editing applications can generate them automatically, and the quality of your final export is not affected because the export draws from the original files.
If you are sending raw camera footage, send the originals in whatever format the camera produced — do not re-encode before sending, as this only reduces quality. If you need to transcode for any reason (for example, to reduce file size for a long upload), ProRes 422 or DNxHD are the standard choices for professional handoffs, as they are easy to edit and grade. Always communicate with your editor before transcoding, as they may have a specific preference or workflow that makes the original camera format preferable.
A clean footage handoff saves hours of back-and-forth and keeps your edit moving — here is exactly how to do it right.
DaVinci Resolve is the most powerful free video editor on the planet — here is everything a beginner needs to actually use it.
Studio432 edits concert footage, music videos, gaming content, vlogs and short-form for creators worldwide. Send the footage, get a quote by email.
Start a project →