Comparison of video container formats

From Wikipedia, the free encyclopedia

These tables compare features of multimedia container formats, most often used for storing or streaming digital video or digital audio content. To see which multimedia players support which container format, look at comparison of media players.

General information

Summarize
Perspective
Containers related by derivation

In many ways, derived containers are similar to those on which they are based, sometimes extending them, sometimes limiting their capabilities.

More information Format, Filename extension ...
Close

Support level legend:  Full   Indirect, lossless   Partial   Depends on setup   None 

  1. Indicates if the container can be used for a container bitstream, for example, for use as an RTP payload format. Some technologies, such as WebRTC, do not use any container formats for streaming. Some use fragmented MP4 (fMP4) or MPEG-TS segment files, such as HLS and MPEG-DASH.[2]
  2. Tags.
  3. Also .mka for content that is primarily audio or .mks for subtitles only.[3]
  4. Although CoreCodec, Inc. holds the copyrights and trademarks for the Matroska specification, the specifications are open to everybody. The source code of the libraries developed by the Matroska team is licensed under the LGPL and BSD licenses.
  5. Anyone can use it or modify it for their own needs without paying any license or patents.[4][5]
  6. Matroska is designed to store VBR and VFR content.[6]
  7. Companies producing Matroska-supporting hardware include Asus,[7] OPPO Digital,[8] Samsung,[9] and LG[10]
  8. Matroska can be streamed over HTTP and RTP/RTSP, through it is not meant to be streamed over RTP, as the two have duplicate features.[11]
  9. Also .m4a, .m4b or .m4p for audio-only content.
  10. There are two popular representations: text track (QuickTime), and userdata atom (Nero).[15][16]
  11. Also .wma for audio-only content.
  12. License required from manufacturers or developers of codecs, but no license fees for the distribution of content.[18]
  13. ACM cannot handle VBR audio streams in AVI files. Thus, software using ACM to read audio from AVI files will not be able to handle VBR audio streams correctly, even though such files are compliant to the AVI file specification. This is a limitation of the ACM, not of the AVI file format.
  14. Although AVI is not designed for variable framerates, it is possible to use them without creating a non-standard file by using 0-byte chunks for skipped frames. However, it requires the framerate to be set to the least common multiple of all framerates used, and produces slight overhead compared to true VFR.
  15. The following extensions are also often used for an MPEG program or a transport stream: .mpg, .mpeg, .mpv, .m1v; also .mpa, .mp3, .mp2, .mp1, .m2a or .m1a for audio-only content.
  16. MPEG-2 Part 1 specification,[23] p. 64, sec. 2.6.3.
  17. Also .tsa for audio-only content.
  18. Blu-ray adopts a specific file structure. Simple title metadata are stored in the /BMDV/index.bdmv file.
  19. Blu-ray adopts a specific file structure. Chapters require a companion .mpls file in the /BDMV/PLAYLIST/ directory.
  20. VOB adopts a specific file structure to encode DVD content. Chapters and menus require a companion .ifo file.
  21. EVO adopts a specific file structure to encode HD DVD content. Chapters require companion .xpl file.[26]
  22. Also .f4a, .f4b and .f4p for audio-only content.
  23. Adobe Flash Video File Format Specification,[30] p. 1. SWF File Format Specification,[31] p. 188.
  24. Also .oga, .ogg or .opus for audio-only content.[32][33]
  25. Chapters stored as Vorbis comments[37] are well supported by common tools such as FFmpeg and VLC.

Some features are only supported by a few containers:

  • Attachments (additional files, such as fonts for subtitles) are only supported in Matroska,[41] MP4 and QTFF. M2TS supports attachments as multiple files in a specific file structure: fonts for subtitles are in .otf files in the /BDMV/AUXDATA/ directory.
  • Interactive menus are only supported in MP4, QTFF, M2TS, EVO and DMF. VOB supports interactive menus as multiple files in a specific file structure for encoding DVD content, requiring a companion .ifo file. Matroska has been planning to support interactive menus as part of a draft specification since 2004.[42]
  • Digital 3D is only supported at the container format level in Matroska,[41] MXF[43] and WebM (some stereo modes).[39] M2TS supports Digital 3D as multiple files in a specific file structure for encoding stereoscopic video: MVC stereoscopic data is in .ssif files in the /BDMV/STREAM/SSIF/ directory and require a respective base .m2ts file. Digital 3D in QTFF and ASF is possible, but not standard. MP4 only supports Digital 3D at the video format level.[44]

Some common multimedia file formats are not completely distinct container formats. Some are containers for specific audio and video coding formats, such as WebM, a subset of Matroska. Some are combinations of common container formats and audio and video coding profiles, such as AVCHD and DivX formats. Although sometimes compared to DivX products, Xvid is neither a container format nor a video format, it is a software library that encodes video using specific coding profiles of the common MPEG-4 ASP video format. Those types of restrictions are intended to simplify the construction of multimedia recorders and players.

Video coding formats support

Summarize
Perspective
More information Format, Type ...
Close

Support level legend:  Full   Indirect, lossless   Partial   Depends on setup   None 

  1. See the MPEG-2 Part 1 specification[23] and registered TS identifiers.[51]
  2. HEVC is mentioned in the latest (07) draft of Matroska,[53] MKVToolNix and VLC already support it.[54]
  3. B-frames in an AVI file are a problem only for the ancient Video-for-Windows API, not for the AVI container itself.
  4. MVC is not covered by the latest iteration of the MXF standards.[62]
  5. MPEG, MXF, and SMPTE 381M,[63] pp. 201-219.
  6. DV, DVC Pro, and DVCam in MXF,[63] pp. 166-172.
  7. The digital YCbCr format is often informally called YUV, the analog format used as basis for it.

Some containers only support a restricted set of video formats:

Audio coding formats support

Summarize
Perspective
More information Format, Type ...
Close

Support level legend:  Full   Indirect, lossless   Partial   Depends on setup   None 

  1. License required from manufacturers or developers of codecs, but no license fees for the distribution of content.[85]
  2. Setting dwSampleSize to 0 in the stream headers triggers VBR stream seeking[88] allowing VBR audio formats in AVI.[89]
  3. Matroska can support some codecs privately when wrapped in a QuickTime data structure.[72]
  4. Vorbis is not officially supported in AVI. While it can technically be muxed into AVI using FFmpeg, Nandub and AVI-Mux GUI[93] many sources report trouble playing back the resulting files,[94] which are incompatible with existing Vorbis decoders for DirectShow and ACM, occasionally causing desynchronization when seeking.
  5. Proprietary tools.[95]
  6. Dolby TrueHD is supported by common tools such as MKVToolNix and VLC.
  7. Special case of LPCM.[97]

Some containers only support a restricted set of audio formats:

Audio-only content can sometimes be placed in a simpler audio-only container, such as Native FLAC for FLAC[103] and ADTS for AAC.

Subtitle formats support

Summarize
Perspective
More information Format, Type ...
Close

Support level legend:  Full   Indirect, lossless   Partial, lossy   Depends on setup   None 

  1. AVI is not designed to embed subtitles, requiring changes to the format and third party tools such as DirectVobSub[105] and VLC.
  2. SMPTE standardized the format for text subtitles in MXF[106][107][108] without a reference software implementation, leaving it to independent developers.[109]
  3. SubRip can be converted losslessly to and from native subtitle formats of several containers, and this conversion is supported by many common tools.
  4. Requires tools that are not officially related to the container format.[109]
  5. TTXT is often called MPEG-4 Timed Text (MP4TT, MP4-TT) or 3GPP Timed Text (3GPP-TT, tx3g).
  6. MPEG-4 Timed Text subtitles aren't supported in Matroska according to developer of MKVToolNix.[115]
  7. VobSub, PGS, DVB-SUB and Ogg Kate are well supported by common tools such as MKVToolNix and VLC. The storage format is specified,[53] but the specification is not officially approved yet.
  8. HDMV PGS and TextST subtitles are used on HD DVD and Blu-ray.
  9. Requires tools that are not officially related to the container format.[116]
  10. Needs alterations to the container.[120][121]

Some containers only support a restricted set of subtitle formats:

  • DMF only supports XSUB.
  • EVO only supports HD DVD PGS.
  • F4V only supports TTXT. SubRip and WebVTT can be converted losslessly to TTXT.[111]
  • FLV only supports loading subtitles with ActionScript,[123] but this functionality may be restricted to the official Adobe Flash Player. WebVTT can be converted losslessly to ActionScript.
  • M2TS only supports Blu-ray PGS. VobSub can be partially converted to PGS using tools that are not officially related to the container format.[116]
  • Ogg only supports Ogg Kate and CMML.[f] SubRip can be converted losslessly to Ogg Kate.[124] Ogg Writ[125] is well supported in Ogg in common tools such as OGMtools[101] and VLC, but there's no intention to turn its draft into a fully supported specification. Xiph recommends using Kate for subtitles.[126] MicroDVD can be converted to Ogg Writ.
  • RMVB only supports RealText. SMIL can be partially converted to RealText.
  • VOB only supports VobSub. PGS can be partially converted to VobSub using tools that are not officially related to the container format.[116]
  • WebM only supports WebVTT.[39] SubRip can be converted losslessly to WebVTT.

Converting image subtitles to text formats is possible using third-party tools[127] but relies on optical character recognition, which is not perfectly accurate and can at best extract basic formatting. Conversion of text to images is possible while preserving content and style. Round-trip format conversion between text formats may not be possible without losing some formatting features.

Overhead

Multimedia containers interleave data in media streams to enable efficient playback using fewer computational resources, such as time spent reading from the storage drive, memory needed to buffer selected media streams, and time spent decoding when seeking to a different position in time. In this sense, muxing overhead is the control information added by the container to carry interleaved streams. A smaller overhead results in a smaller file when carrying the same streams with the same data. Overhead is affected by the total number of packets and by the size of stream packet headers. In high bitrate encodings, the content payload is usually large enough to make the overhead data relatively insignificant, but in low bitrate encodings, the inefficiency of the overhead can significantly affect the resulting file size if the container uses large stream packet headers or a large number of packets.

In general, Matroska[128] requires the least overhead, followed by MP4, AVI and Ogg.[129]

See also

Notes

  1. Indicates whether the standard is open or proprietary, patent-free or encumbered, whether royalty payments are required for streaming and codec implementation, and may indicate the availability of free tools for it.[1]
  2. See the QuickTime File Format Specification[46] and MP4RA's Entry Codes Registered for QuickTime.[45]
  3. AVI officially supports all codecs in the Media Foundation[48][47] which is an evolution of VCM and ACM, both of which are now obsolete. Some older codecs used to be officially supported,[49] and there are many known non-standard third-party extensions.[50]
  4. Matroska can support some codecs when wrapped in two specific Video for Windows data structures, VCM and ACM,[72] but support outside Windows may be limited.[72]
  5. Adobe Flash Video File Format Specification,[30] p. 72, sec. E.4.3.1; p. 1. SWF File Format Specification,[31] Chapter 14: Video, pp. 204-218.
  6. Xiph has standardized the support for codecs in Ogg,[32] but added support for more codecs afterwards.[79][33]
  7. Adobe Flash Video File Format Specification,[30] pp. 7-8, sec. 1.8.
  8. Adobe Flash Video File Format Specification,[30] p. 70, sec. E.4.3.2; p. 1. SWF File Format Specification,[31] Chapter 11: Sounds, pp. 177-192. SWF File Format Specification Version 10, ADPCM Compression.[100]

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.