Movie Help

Movie formats remain one of the remaining areas of information technology where incompatibilities abound, both between different platforms and between applications on the same platform. One problem is the preference certain vendors have for promoting closed formats that only their products can play.

Another relates to the fact that there is often confusion between the distinct concepts of containers and codecs. A container is a specification for the structure of a movie file - for instance, should the audio data follow the video data, or be interleaved with it? Whereas a codec is a specification for how the video or audio data are encoded and/or compressed. Some types of container support many different codecs, while others support only one — and often this 'support' is a policy decision rather than a technological limitation (for instance, with the Linux mencoder program, one can create movies with just about any combination of container and codec; but many of these will refuse to play on Windows and/or Mac OS).

The following sections review the containers and codecs used on mad star for encoding movies. Much of the information is taken from Wikipedia, and links to the appropriate pages are included.

Containers

AVI

AVI was developed by Microsoft (the acronym stands for Audio Video Interleave), and supports a wide variety of codecs. It is often paired with the DivX codec (see below), although one sometimes comes across older — and more obscure — codecs. A peculiarity of AVI is the embedding of a four-character code (known as a 'fourcc') that identifies the video codec used; in specific cases a given codec can be associated with multiple, equivalent fourcc codes (e.g., DIVX and XVID). An application will sometimes refuse to play an AVI file with a known codec, because the fourcc code is not recognized

MOV/MPEG-4

MOV was developed by Apple, as the container for their Quicktime media platform. It was subsequently adopted as the container for the MPEG-4 standard, so nowadays it's pretty cross-platform.

Codecs

MPEG-4 Part 2

MPEG-4 Part 2 is one of the codecs in the MPEG-4 standard. For a movie to call itself an 'MPEG-4' movie, this codec (or H.264, below) should technically be twinned with an MOV/MPEG-4 container. However, a while back some enterprising individuals hacked one of Microsoft's MPEG-4 Part 2 codecs so that it could instead be used inside an AVI container. This established the extremely popular DivX format, which has continued to evolve over subsequent years, and now exists in a proprietary version and an open-source fork known as XviD. I used to favor these formats because of their cross-platform support; however, they suffer from a number of ideosyncracies (especially in regards to PowerPoint support), and so I've switched over to the MPEG-4 Part 2 codec that comes as a standard part of the open-source FFmpeg project. When embedded in AVI containers, this particular codec has the fourcc FMP4.

H.264 / MPEG-4 Part 10

H.264 is a codec designed for very high compression, and was adopted as Part 10 of the MPEG-4 standard.When twinned with the MOV/MPEG-4 container, the resulting movie files are (with a few minor technical differences) what Apple terms 'Quicktime 7'.

Microsoft RLE

This codec relies on run-length encoding to compress video data. It is quite old, and doesn't achieve particularly good compression; however, it does have the advantage that it is supported by just about all platforms.

Compatibility

Often, getting a movie created on one computer to play on another can be quite a headache. The following tips may be of some use in this respect.

Windows

Mac OS X

Linux


Updated 2011-02-08 12:01:35