It's best not to think of mpeg-4 as a codec (compression type) but instead as of a file type, very much like a GIS metadata file -- which can contain several bits of information and data, in addition to a video or audio stream. These can include VRML (3D) Objects, embedded interactivity, stage descriptions (placement of objects) and much more.
MPEG-4 Working Group Forms
MPEG-4 Adopts data structure format based on Quicktime's data structure (i.e. just organisation, not codec support -- MPEG-4 is not a Quicktime clone).
Microsoft announces MPEG-4 support
Microsoft delivers a MPEG-4 implementation based on initial file specification, but with their own codec, that is not licensed back to the MPEG-4 working group (i.e. is not compatable with any licenced mpeg-4 implementation). This codec goes through several interations -- currently it is listed as MPEG-4v3.
A french teenager, Jerome Rota, hacks Microsoft's MPEG-4 implementation to use an .avi data structure instead of .asf, and adds the ability to support larger frame sizes, different audio codecs, and standard compression tools. This is called Divx ;-) (smiley face is really part of the name)
(Several Months Pass)
Jerome Rota develops an open source MPEG-4 codec called OpenDivx, not based on Microsoft Code. Initially, it cannot play back older Divx ;) content, but later versions can. It eventually turns into a commercial product, Divx v4, and now Divx v5 Pro. A free version is still available now.
MPEG-4 file format finalised -- let the licensing struggle begin!
(Several Months Pass)
MPEG-4 Licensing Group adopts per-use and per-stream licensing, which makes everyone angry. Apple takes the case to the public, threatening to not ship MPEG-4 support in their digital video products, specifically Quicktime 6.
MPEG-4 group modifies licensing, adding a "lump sum" clause with a cap, for manufacturers of MPEG-4 products. In addition, non-profit use of MPEG-4 streams is not subject to per stream licensing. How companies will actually audit for per stream costs is still up in the air -- most are hoping it will never be implemented.
Quicktime 6 supports a subset of MPEG-4 (playback and compression):
RealMedia can play back MPEG-4 content via the Envivio plug-in that Real has licensed:
http://www.realnetworks.com/solutions/leadership/mpeg.html?UK=X
IBM has announced a plug-in for the Java Media Framework that can decode MPEG-4
http://www.alphaworks.ibm.com/tech/mpeg-4
Several consumer electronics companies have either announced or are shipping consumer products that use MPEG-4:
You can link in MPEG-4 content just like any other content. This is typically called HTTP Streaming, which requires nothing more than a Web Server.
Upside
Downside
You can also use a special purpose streaming media server. There are actually several alternatives here. For MPEG-4, the two good choices are either RealMedia or Apple's open source Quicktime Streaming Server Unfortnately, with this comes two different approaches for linking content (*sigh*). However, both of these companies are members of IMSA (International Media Streaming Association) so maybe things will change..........
MPEG-4 is still a very new file format. Besides unresolved licensing issues, companies are continuing to develop new products and codecs for mpeg-4:
http://www.eetimes.com/semi/news/OEG20020916S0018
In addition, we will be seeing the emergence of MPEG-4 "authoring" enviroments, similar to a DVD authoring enviroment, but with accomodations for concepts such as stage placement. This will make it possible for non-programmers to build complex,interactive MPEG-4 content. iVast Studio is an example of this:
A really good introduction to MPEG-4:
http://www.streamingmedia.com/tutorials/view.asp?tutorial_id=149
ExtremeTech has this good overview of MPEG-4, written by Jan Ozer.
http://www.extremetech.com/article2/0,3973,838500,00.asp
I have found this site to be very helpful. This is the white paper on mpeg4.
http://mpeg.telecomitalialab.com/standards/mpeg-4/mpeg-4.htm
And of course there is the mpeg licensing group.
Here's a paper that *might* make your brain hurt, but is a good description of MPEG-4's underlying XML data structure:
http://www.acm.org/sigs/sigmm/MM2000/ep/michelle/
If you are interested in setting up MP4IP, which is an open source mp4 streaming player/encoder (primarily for Linux, but other OS's are supported), here's a very good article on setting it up.
http://www.everwicked.com/content/MPEG4IP_Guide/index.php
Indian Crows by Dr. Hal Heatwole
This movie is a great way to see how a low-bandwidth codec holds up with complex imagery. Note the leaves blowing in the wind in the first part of the video, and the high motion at the end with the crows.
IMSA Compliant MPEG-4 Content
These will play back with either RealPlayer (with the envivio plug-in) and Quicktime 6. The "Enhanced" version is simply a larger frame size, with somewhat higher bandwidth requirements. The "basic" version is a file suitable for playback on any device that supports MPEG-4 (i.e. cell phones, pda's).
Addendum: I have discovered to my chagrin that the .mp4 extension may be unrecognised by some web browsers. This will result in your browser attempting to load the file as a text file (a bad thing). As a quick fix, I have added the actual URL of the file below each link. If you experience problems playing these mpeg-4 files with your browser, try copying the URL's below, and then use "Open URL" in either RealPlayer or Quicktime to see the movie. I will have a better solution available shortly.
320x240 (IMSA "Enhanced")
http://www.ncsu.edu/it/multimedia/380-kbs/IndianCrow320.mp4
160x120 (IMSA "Basic")
http://www.ncsu.edu/it/multimedia/380-kbs/IndianCrow160.mp4
Other Versions
Quicktime Movie, compressed using Sorenson 3, with a 380 kb/s data rate
MPEG-1 file, with a 380 kb/s data rate
RealMedia 9 (Helix) with a 380 kb/s data rate
Windows Media 7 with a 380 kb/s data rate
Tools
Apple Quicktime Pro for Mac and Windows can export compliant MPEG-4 content.
http://www.apple.com/quicktime/upgrade/
Sigma Designs Freeware Windows MPEG-4 Codec
http://www.sigmadesigns.com/products/MPEG4_video_encoder.htm
MPEG4IP: Open source mpeg-4 streaming project for multple platforms.
http://mpeg4ip.sourceforge.net/index.php
Web front end for MP4IP
http://mp4web.sourceforge.net/