Lably
Skip to content

Container format

File format to hold multiple data streams

  • 5 min read
  • 2 chapters

Related on Lably

Through File format, Computer program and Microsoft Windows

Design

Although containers may identify how data or metadata is encoded, they do not actually provide instructions about how to decode that data. A program that can open a container must also use an appropriate codec to decode its contents. If the program doesn't have the required algorithm, it can't use the contained data. In these cases, programs usually emit an error message that complains of a missing codec, which users may be able to acquire.

Container formats can be made to wrap any kind of data. Though there are some examples of such file formats (e.g. Microsoft Windows's DLL files), most container formats are specialized for specific data requirements. For example, since audio and video streams can be coded and decoded with many different algorithms, a container format may be used to provide the appearance of a single file format to users of multimedia playback software.

Considerations

The differences between various container formats arise from five main issues:

  1. Popularity; how widely supported a container is.
  2. Overhead. This is the difference in file-size between two files with the same content in a different container.
  3. Support for advanced codec functionality. Older formats such as AVI do not support new codec features like B-frames, VBR audio or VFR video natively. The format may be "hacked" to add support, but this creates compatibility problems.
  4. Support for advanced content, such as chapters, subtitles, meta-tags, user-data.
  5. Support of streaming media.

Single coding formats

In addition to pure container formats, which specify only the wrapper but not the coding, a number of file formats specify both a storage layer and the coding, as part of modular design and forward compatibility.

Examples include the JPEG File Interchange Format (JFIF), for containing JPEG data, and Portable Network Graphics (PNG) formats.

In principle, coding can be changed while the storage layer is retained; for example, Multiple-image Network Graphics (MNG) uses the PNG container format but provides animation, while JPEG Network Graphics (JNG) puts JPEG encoded data in a PNG container; in both cases however, the different formats have different magic numbers – the format specifies the coding, though a MNG can contain both PNG-encoded images and JPEG-encoded images.

Sign in to keep reading

One more chapter is free with a Lably account.

More in Computing and communication