H.264

MPEG-4 Part 10 is a standard for video Compression. MPEG-4 Part 2 (ASP and SP), which includes implementations like DivX and XviD, was originally designed with video conferencing and other relatively primitive types of video. MPEG-4 Part 10 was designed specifically with High Definition (HD) video for home theater applications in mind as one potential application. It also includes specifications for lower quality video for portable devices, allowing a single standard to be compatible across a wide variety of devices and applications.

AVC / H.264
MPEG-4 Part 10, also known as MPEG-4 AVC (Advanced Video Coding), is actually defined in an identical pair of standards maintained by different organizations, together known as the Joint Video Team (JVT). While MPEG-4 Part 10 is a ISO/IEC standard, it was developed in cooperation with the ITU, an organization heavily involved in broadcast television standards. Since the ITU designation for the standard is H.264, you may see MPEG-4 Part 10 video referred to as either AVC or H.264. Both are valid, and refer to the same standard.

Advanced Video Coding
MPEG-4 Part 10 defines video encoding that's equally useful for low resolution/bitrate players like mobile phones and media players, medium resolutions and bitrates comparable to Standard Definition (SD) DVD, to high definition movie encoding for HDTV, Blu-ray, and HD DVD. Like MPEG-2 and MPEG-4 Part 2 video, AVC is divided into a number of profiles, primarily to define what features a particular device or class of devices (like 3G phones for example) supports. Some of the more advanced features require a fair amount of CPU power, and therefore aren't suitable for devices like 3G phones or many portable media players. Other features, like higher resolutions and bitrates, aren't even helpful for many devices.

Codecs
Just because all MPEG-4 AVC encoders are designed to the same standard doesn't mean they're all the same. MPEG-4 Part 10 is a standard that codecs are written to. The codecs are the actual implementation, which my include all or just some of the complete feature set. Lossy encoding is basically a series of estimations and approximations. Even within a single video encoder there will usually be options to trade encoding speed for accuracy. This is possible because many values have an acceptable margin of error, allowing varying levels of precision in the calculations.

Compatibility
Regardless of what encoder was used to create an AVC video stream, as long as it's MPEG-4 Part 10 compliant any decoder equipped to handle the standard features used will be able to play it. This is usually just a matter of supporting the proper Profile and level (see below).

Containers
AVC video is commonly found in a number of containers, largely depending on the application. The official MPEG-4 Container, as defined in MPEG-4 Part 14, is MP4. HDTV transmissions will typically mux it into a MPEG-2 Transport Stream, as do Blu-ray and AVCHD. HD DVD uses a MPEG-2 PS derivitive, similar to the VOB container used for DVD.

Computers and some standalone DVD players can read video from the MP4 container, but support for audio other than the official (MPEG-4 Part3) HE-AAC audio format in that container is somewhat limited. There are many Many people using HTPCs or viewing on their computers who prefer the MKV (Matroska) container for its flexibility. The original AC-3 audio from a DVD or DTV broadcast can easily be muxed into a MKV file and played back on just about any operating system.

MP4 and MOV
The MP4 (official MPEG-4) container format was based on Apple's QuickTime container, which generally uses an extension of MOV. It adds some descriptive data required by MPEG. A modified version of MP4, with the 3GP extension, is used for 3G mobile phones.