Taming Confusing Codec and Container Terminology

There's a lot of confusion over the terminology for various codecs and containers. They are often part of multiple standards and have various common names in different contexts.

This is a stab at unifying them for reference. It's not meant to be an exhaustive list but just to cover the most common ones.

Video Codecs:

  • h.261, MPEG-1 Part 2, MPEG-1 Video, MPG
  • h.262, MPEG-2 Part 2, MPEG-2 Video
  • h.263*, MPEG-4 Part 2, MPEG-4 Visual, DivX, XviD
  • h.264, MPEG-4 Part 10, MPEG-4 Advanced Video Coding, MPEG-4 AVC, AVC1, SVC**
  • WMV9*, WMV9 Advanced Profile, WVC1, VC-1, SMPTE 421M
  • VP8

Audio Codecs:

  • MP2, MPEG-1 Audio Layer II, MPEG-2 Audio Layer II
  • MP3, MPEG-1 Audio Layer III, MPEG-2 Audio Layer III
  • AC-3, Dolby Digital (5.1)
  • E-AC-3, Dolby Digital Plus (7.1)
  • AAC, AAC-LC*, MPEG-2 Part 7, MPEG-2 Advanced Audio Coding, AAC-LD**, AAC-ER**, AAC-SSR**
  • HE-AAC, HE-AAC v1, aacPlus v1, AAC+
  • HE-AAC v2, aacPlus v2, AAC++
  • WMA
  • WMA Pro
  • WMA Losseless
  • WMA Voice
  • Vorbis

Containers:

  • MPEG-1 Part 1, MPEG-1 Program Stream, MPEG-PS, VOB, MPG
  • MPEG-2 Transport Stream, MPEG-TS, ATSC A/53, DVB, 3GPP*, 3GP*
  • MooV/MOV, MPEG-4 Part 14*, MP4*, 3GPP2*, 3G2*, F4V*
  • Matroska/MKV, WebM*

* Restricted profile or feature set.
** Optional annex-defined profile or feature not supported by all players.

NOTES:

The term MPEG-4 without qualifiers should probably be avoided since it includes two incompatible video formats.
MP2 and MP3 are subsets of both MPEG-1 Part 3 and MPEG-2 Part 3.
AAC, HE-AAC v1 and HE-AAC-v2 are all subsets of MPEG-4 Part 3 a.k.a MPEG-4 Advanced Audio Coding.
MPEG-TS and MPEG-PS are both subsets of MPEG-2 Part 1.
Matroska is a superset of EBLM.

Last edited Jun 25, 2013 at 7:41 PM by jclary, version 5

Comments

jclary Jun 25, 2013 at 7:38 PM 
It's worth pointing out that Flash isn't represented in that list of DASH containers because it uses f4v which is just mp4 with a different file extension. The rtmpt protocol works nothing like HLS and Smooth Streaming and doesn't fit with the transport mechanism in DASH.

jclary Jun 25, 2013 at 7:35 PM 
DASH is a lot of things. First, it defines an XML manifest file format similar to the one used by Microsoft's Smooth Streaming. Where it gets sticky is that it references multiple container formats -- variations on WebM, TS, fragmented TS like HLS, MP4 and fragmented MP4 like Smooth Streaming. It leaves the door open for others as well. Covering all the possible combinations is pretty challenging.

juliusfriedman Feb 17, 2013 at 11:37 AM 
Where does Dash fit into ? I would assume the container but it also has some transport mechanisms...