Probably contains far more useless info than you need but there's the wiki: http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC
Basically you have two components to most files. The compression/encoding standard and the container. Containers are things like AVI, MKV, MP4 etc. They describe the data they contain and how it is meant to be read. The data will be encoded using a particular standard such as MPEG-1, MPEG-2, WMV and H.264. The standard used partially determines the quality, file size and compatibility of a video file. A .mp4 file may contain one of several different standards, which means that if your program can read one MP4 it may not be able to read another. The video playback program must support both the container and the standard to work.
To be even more confusing some standards go by multiple names. H.264 is also called AVC and MPEG-4 Part 10 (usually not the latter).
This might be of help too: http://www.dvd-guides.com/content/view/143/59/