Digital Video Formats
Introduction and Disclaimer
I am not an expert in video formats. I wrote this page because I
was having trouble getting the information,
and couldn't find any good explanations of video formats on the
web. The information here is
gleaned from reading pages I found via google searches (references to
some of the useful sites I found are given at the bottom).
This page is severely out of date. Most of it dates back to December, 2004.
Mpeg4, in particular, has changed a lot since then and those changes
aren't reflected here.
This is a work in progress. If you find errors, please let me know.
What's a Video Format?
Video formats are confusing because most video files have at least two
different types: the container, and the codec(s) used inside that
The container describes the structure of the file: where the
pieces are stored, how they are interleaved, and which codecs are used
by which pieces. It may specify an audio codec as well as video.
A codec ("coder/decoder") is a way of encoding audio or video
stream of bytes.
To make life even more confusing, some names, such as "mpeg-4",
describe both a codec and a container, so it's not always clear from
context which is being used. You could have a movie encoded with
an mpeg-4 codec inside an avi container, for example, or a movie
encoded with the Sorenson codec inside an mpeg-4 container.
The Linux file program is a fast way to find out the container
format of a video file.
You can use the mencoder program (part of mplayer) to tell you
the container and video codec of a file (you'll have to wade through a
lot of other output).
For mpeg files, you can find out the audio codec with mpginfo,
part of the mpgtx package. For other formats, try
mplayer -identify -frames 0 filename | grep ID_
Common Container Formats:
AVI (.avi): Most commonly contains M-JPEG (especially from digital
cameras?) or DivX (for whole movies), but can contain nearly any format
(not Sorenson). Sometimes you'll see a reference to the "fourcc":
this is a four-character code (such as "divx" or "mjpg") inside the AVI
container which specifies which video codec is being used.
Quicktime: Most often used for the locked Apple Sorenson codec, or for
Cinepak (free), but can also hold other codecs such as mjpeg, etc.
WMV (.wmv): More or less MPEG4; can contain nearly any codec, including
several Microsoft spinoffs of MPEG-4 which vary in their freedom and
ASF ("Advanced Streaming Format", .asf): a subset of wmv, intended
primarily for streaming: an early Microsoft
implementation of an MPEG4 codec.
MPEG ("Moving Pictures Expert Group"): three video formats, MPEG 1, 2,
MPEG-1: Old, supported by everything (at least up to 352x240),
reasonably efficient. A good format for the web.
MPEG-2: A souped-up version of MPEG-1, with better compression.
720x480. Used in HDTV, DVD, and SVCD.
MPEG-4: A family of codecs, some of which are open, others Microsoft
MPEG spinoffs: mp3 (for music) and VideoCD.
MJPEG ("Motion JPEG"): A codec consisting of a stream of JPEG
images. Common in video from digital cameras, and a reasonable
format for editing videos, but it doesn't compress well, so it's not
good for web distribution.
DV ("Digital Video"): Usually used for video grabbed via firewire off a
video camera. Fixed at 720x480 @ 29.97FPS, or 720x576 @ 25
FPS. Not very highly compressed.
WMV ("Windows Media Video"): A collection of Microsoft proprietary
video codecs. Since version 7, it has used a special version of
RM ("Real Media"): a closed codec developed by Real Networks for
streaming video and audio. Maybe also a container?
DivX: in early versions, essentially an ASF (incomplete early MPEG-4)
codec inside an AVI container; DivX 4 and later are a more full MPEG-4
codec.. No resolution limit. Requires more horsepower to
play than mpeg1, but less than mpeg2. Hard to find mac and
Sorenson 3: Apple's proprietary codec, commonly used for distributing
trailers (inside a quicktime container).
Quicktime 6: Apple's implementation of an MPEG4 codec.
RP9: a very efficient streaming proprietary codec from Real (not MPEG4).
WMV9: a proprietary, non-MPEG4 codec from Microsoft.
Ogg Theora: A relatively new open format from Xiph.org.
Dirac: A very new open format under development by the BBC.
There are many others; this document does not attempt to list them all.
Video Compression - Part 1 and Part
2. A most excellent overview.
Table -- The page is partly in French, but the table is in English.
Linux A/V (Co)Decs
-- says it's out of date, but a useful table nontheless, showing
containers, codecs, and players which support them.
FAQ of AVI MPEG Video
list of video codecs
Formats for the Web
Shallow Sky Home