💡🎬 Codecs, Containers, Compression

Bitrate or Datarate

The data rate of a video is simply a measure of how large the file is, usually measured per second. Uncompressed video is very inefficient and therefore usually not a thing. Most video formats employ some form of compression, even if it’s not immediately apparent. Common bitrates of highly compressed footage would be something like an HD YouTube video which is compressed to around 8Mbps (8 megabits per second). Something like a Sony Venice shooting in 6K produces files larger than 2Gb per second (2 gigabits per second).

VBR means “variable bit rate” or that the bit rate changes over time. This is useful since some complex scenes have a lot of motion and could require a lot more information than other scenes. Think of a thousand tree leaves swaying in the wind. Every frame is different and the amount of detail is complex. Contrast that with a static shot of the sky. There is little detail in the frame and little change over time so the data rate required can be much lower. The alternative to VBR is CBR or “Constant Bit Rate” where the bitrate is steady through the entirety of the clip.

Codecs

To minimize file sizes, cameras compress/encode an image upon capture and playback devices must decompress or decode the image. This compression+decompression is abbreviated as “Codec“. Choosing a codec is a very important part of any workflow. Some codecs are efficient for storing video files, but very demanding to play back and may not contain much room to manipulate the image in post. Codecs will employ two main types of compression.

Spatial Compression

Compression within the frame. This is considered intra-frame compression since the compression doesn’t cross between frames.

Temporal Compression

Compression across various frames over time. This is called inter-frame compression since the compressor will look at “groups of pictures” and compress them together for increased efficiency.

The “I” frame will contain the entire image, but successive frames (called “B” and “P” frames) will contain only the parts of the image that change over time.

Containers

It’s important to realize that the codec of a video file is not the same as its container. h.264 is a compression standard, but it could live within a .mov container, a .mp4 container, a .mxf containter, etc. The container is basically a form of standardizing information about how the video content is stored, both the video and its metadata.

That video was a bit in depth, but you should well understand that compression compounds in severity with every generation. This is best demonstrated via this multi-generational compression demonstration on YouTube where this guy uploaded a video to YT 1000 times.

From Frame.io:

Codecs are a core technical consideration for every step of post-production, so it is critical that everyone who touches your workflow understands the basics.

A codec is the set of rules that tells computers and electronic equipment how to handle your media files, most notably digital video footage. The term codec is a shortening of the words compressor-decompressor or coder-decoder. As the name implies, codecs make video files smaller for storage, and then turn the compressed data back into a usable image when you need to use it again.

[Note: Codecs are not the same as containers. Containers are the file types that actually store digital video data, and can be used in conjunction with many different codecs. Imagine containers as the box where you put data, and codecs as the instructions for packing and unpacking the box. H.264, DNxHD, and ProRes are codecs, while .movs, .mxfs are containers.]

We need codecs because uncompressed video files are gigantic. A single minute of uncompressed 4K footage measures in the dozens of gigabytes. So, you will probably never have the option of working with uncompressed footage (video without a codec) all the way through your workflow. It’s just too large and too complex to work with in most cases.

Codecs solve this problem by reducing the size of your footage and making it easier to work with across the post-production pipeline. But just because the image is compressed doesn’t mean it will look worse. While not all codecs are created equal, there are many high-end codecs you can choose from that still deliver stunning image quality. The right codec will make your footage much easier to manage, and you may not even be able to tell a difference from the original.

That said, you will be able to tell a difference if you choose the wrong codec for certain post-production processes. Using a codec with too much compression might make your desired color-correction unachievable, or make your VFX work look unrealistic. On the other hand, codecs with too little compression might make your video uneditable on normal computer hardware, and cause issues when transferring data between teams or facilities. Different codecs are good in different contexts, but there is no single codec that works for every use case.

Choosing codecs is one of the most important technical decisions you will make for your project. To a large extent, codecs determine what you can do with your footage in post and how complex your workflow will be. It is usually much safer, faster, and cheaper to pick codecs that you know will fit neatly into a pre-planned/pre-existing workflow, than it is to improvise a new workflow around codecs that you have not used before. The last thing you want is to find out some or all of your footage is unusable because the codec isn’t compatible with your software or hardware. As with everything in post-production, test all your codec choices before the project begins.

Of course, to pick codecs effectively, you need to understand how they impact the visual qualities of video. While the mathematics and computer science behind codecs are quite complicated, there are only a few fundamental concepts you need to know to choose the right codecs for your production.”

Popular Codecs include

  • ProRes
  • ProRes Raw
  • DNxHD
  • h.264 (an MPEG codec)
  • h.265
  • MPEG-2

Mezzanine Codec / Intermediate Codec

This term refers to a codec designed for post production. Camera originals would be converted to this format for editorial. It’s generally intraframe for quick scrubbing with minimal system taxation and can handle multiple generations of encoding without significant quality loss.

CABAC: “Context-adaptive binary arithmetic coding is a form of entropy encoding used in the H.264/MPEG-4 AVC and High Efficiency Video Coding (HEVC) standards. It is a lossless compression technique, although the video coding standards in which it is used are typically for lossy compression applications.”

Open/Closed GOP: “A closed GOP is a group of pictures in which the last pictures do not need data from the next GOP for bidirectional coding. Closed GOP is used to make a splice point in a bit stream.”

Scroll to Top