MPEG-4 in a Capsule

MPEG-4 is:

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.

TimeLine

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.

What can use MPEG-4?

Quicktime 6 supports a subset of MPEG-4 (playback and compression):

http://www.quicktime.com

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

http://www.envivio.com

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:

The Sony NX-70V Palm Pilot

Samsung ITCam-7

The JVC "Streamcorder"

Philips Electronics Platform4

 

How Do I 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..........

What's next for MPEG-4?

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:

http://www.ivast.com/

Can I find out more without making my brain hurt too much?

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.

http://www.mpegla.com/

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

 

Show me some examples!

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/