MPEG-4

Most promising - But the least portable - for now

Radical compression.  Low loss.

Perfect for the new HD DVD and Blu-ray formats - but for Desktop video the apps are not ready for prime time.

 

*** also see

MPEG Industry Forum  -   Overview of the MPEG-4 Standard 

MP4 FAQ    MPEG-4 ASP FAQ  -  AVC/H.264 FAQ   -   AAC FAQ   -   MP4 FAQ 

Xvid FAQ   Doom9's Codec Shootout 2005    WinXmedia DVD Ripper

3ivx Codec w/Encoder ($20), Decoder only ($7)  OR  (oddly) the Decoder is FREE here:  http://www.free-codecs.com/download/3ivx.htm

OR you can download the free, full version of the K-Lite Codec Pack. run the install, and deselect everything except for the 3ivx video and sound decoders

And only if you're curious  .  .  .  Intro to MPEG-7         Intro to MPEG-21

You all have heard of it, and most likely have encountered proprietary coded implementations of MPEG-4 video clips  .  .  .  such as DivX or Xvid.  MPEG-4 is a family of standards, but the one to know about is AVC/H.264.  AVC (Advanced Video Coding) profiles use the new h.264 codecs being developed for MPEG-4. h.264 is the encoding that is slated to be used on the next generation DVD players (Blu-ray, etc.)

MPEG-4 AVC/H.264 is the next holy-grail of codecs !!!

BUT  .  .  . 

No one has made a good, universally playable*, fast, codec.

*not universally playable - this is Microsoft's fault.  90% of the users run Windows and most of them run WMplayer, which only recently came out with it's own standard called VC-1.  BUT it does not play *.mp4 files without additional codecs, which are the only true standard mpeg-4 files.

MPEG-4 and VC-1      -     are included in the specs of HD-DVD (High Definition/High Density-DVD),  BD-DVD (Blu-ray Disc DVD)

Both the Blu-ray Disc Association, and the HD-DVD consortium have added the MPEG-4 AVC and the VC-1 video codecs to their specification    It is therefore a certainty that AVC/H.264 will be the Mother of All video formats, widely used and supported, as is the case with MPEG-2 (used in DVD) today.

A Note on VC-1   -   VC1 is NOT MPEG-4  (but the compression rates and technologies are similar).  Microsoft's VC-1 is a codec specification. WMV9 is an implementation of that specification. In the context of Microsoft video codecs, WMV9 and VC-1 can be considered one and the same.  In April, 2006, after about 2.5 years, SMPTE has finally ratified the VC-1 codec specification, also known as SMPTE 421M Standard for Television.  The standard, based on Microsoft's Windows Media Video 9 codec, was submitted to SMPTE in September 2003. Most of the changes during the development period were related to the Advanced Profile portion of the VC-1 standard which is aimed at the growing high-definition market.   Download VC-1 codec here and see Microsoft's VC-1 info Here

The Truth is  - as of now, MPEG-4 is a royal PAIN - but it is so promising for the future

It is so frustrating.  MPEG-4 has been around for years, yet you cannot get a codec with easy-to-use interface, that will make stand-alone video clips and DVD's that are playable by the masses.  It is still a jumble of proprietary non-standard codecs, most of which you must pay for.  Microsoft did not include an MPEG-4 codec as a default install with WinXP's WMplayer.  You can get it to play certain kinds of MPEG-4 clips, if you load the right codecs and Direct Show filters  .  .  .  but that's the problem  .  .  .  "certain kinds"  .  .  .  there should be "one kind". 

There is no "STANDARD MPEG-4" codec - even though MPEG-4 is standardized !!! 

The open-source Xvid, for example at www.xvid.org is a mess.  The site is maintained by a bunch of genius engineers who forgot that us normal folks might appreciate an encoder that is not still in uncompiled code.  They point you to a complex help file on Doom9 where you have to use several apps just to make an Xvid:  you need  Gordian;s knot, an avs AVIsynth file, Virtual Dub, and the Xvid encoder code - all to create a single Xvid MPEG-4 file.

Divx is proprietary and the encoder is even more of a joke - yet they charge for it !!  It is a tiny box that you drag files into, and it has virtually no user interface and no options.  Then there is Nero Recode2 which everyone raves about - but if they buy it, they know that few people can actually view the videos that it makes.

 

Container Formats

The files we normally call "video clips" are container format files.  For example, video and audio streams are stuffed into an AVI container.  When you go to play the AVI, the player first needs to know what codec each stream used so that they can be decoded.  This is done by inspecting their private FourCCs, which you may have seen if you drag the AVI file into any codec identification utility.  MP4 does not use the four CC's - but it does use "private track ID's".

NOTE:  Matroska is the most popular container because you can put just about anything inside - but these are the video gurus that voted for it.  For the masses, they have no idea what Matroska is, and will probably never see it !!!

A container format (AVI, MPEG, RM, MOV, etc) is often called a "program stream", or "system stream"  -  which is really multiple streams concatenated or muxed together into one.  There is usually one video, and one audio stream that are "contained" within a single file.  The separate video and audio streams are called "elemental streams".  For example, you could take one *.m2v file (video stream) and one *.wav file (audio stream), and combine them into one *.mpg container file.

The "avi codec", "mpeg codec", "mp4 codec", etc terminology misuse  -  it is easy to see why people use these phrases.  But just tp understand this - you should know that technically, they are wrong.  Since these are all containers, there is no single codec that can play the file.  Instead there are multiple codecs for the multiple elemental streams within the container file.  For example, an mpeg2 files that has m2v video and wav audio requires three codecs: 

  1. mpeg2 codec to break apart the mpeg2 stream into it's two sub-streams
  2. mp2 codec to decode the video
  3. wav pcm codec to decode the audio

MP4

*** also see    MP4 FAQ      MP4 Guide        Nero Recode2 Guide   

*** Nero Recode 2 converts DVD files to MP4 standardized format - but they won't play on virtually any DVD player out there

MP4 is the global file extension for the official container format defined in the MPEG-4 standard (ISO 14496-14).   MP4 is streamable and supports all kinds of multimedia content (multiple audio-, video-, subtitlestreams, pictures, variable-framerates, -bitrates, -samplerates...) and advanced content (officially called "Rich Media" or "BIFS") like 2D and 3D animated graphics, user interactivity, DVD-like menus.

MP4 audio is always AAC !!!  Which unfortunately, just like the video portion - is not supported by most players.

mp4 is the only official extension, for all MP4 files - although other MP4-like formats have been developed such as:

- .m4v: .mp4 files with the WRONG extension introduced by apple for video+audio files, m4v can safely be renamed to .mp4
- .m4a: .mp4 files with the WRONG extension introduced by apple for audio-only files, m4a can safely be renamed to .mp4
- .m4p: DRM protected files sold in iTunes, using the DRM sheme developed by apple
- .m4e: renamed .sdp files used by Envivio for streaming
- .m4v, .mp4v, .cmp, .divx, .xvid, .264: normally raw mpeg-4 video streams (not inside MP4)
- .3gp, .3g2: used by mobile phones, can also include content not defined for .mp4 (H.263, AMR)
 

Many DVD players are capable of playing MPEG-4 video - but ONLY when inserted into an AVI container.  For example, Xvid files are MPEG-4 AVI files.  However, few players are capable of playing MPEG-4 that is inserted into an MP4 container.

Nero's odd but brave foray into an unsupported Format

Nero is trying to push their Nero Digital technology, with itts MP4 files, into the market - and Nero Digital uses the full feature set that the MPEG-4 technology can offer: video, audio and the container.  Please note that while MPEG-4 AVC content can also be created by NeroDigital, and put into the MP4 container, at this point there is no DVD player available that can play this - but there will be in the future.

Nero, has been aggressively moving into the DVD backup market earlier this year with the release of Nero 6. It came with an AAC audio and a package called NeroVision that allows you to create and edit video and put it on (S)VCD or DVD discs. It also came with an application called Recode, which could be used to transcode DVDs to make them fit on a standard DVD±R/W disc.

But at the same time, Ahead was working to enter the "back up your DVDs to a single CD" market, which was started 4 years ago with the DivX ;) codec. Instead of developing yet another MPEG-4 codec, Ahead chose to go a different route. Their NeroDigital solution is an entire package for video, audio and subtitles, based entirely on the MPEG-4 standard. It includes an MPEG-4 Advanced Simple Profile video codec, an MPEG-4 Advanced Video Compression codec, a High Efficiency AAC audio encoder, using the standard MP4 container to contain both audio and video (and subtitles, but in a nonstandard form). The container also supports chapters which are taken from the original DVD. And instead of offering the tools separately, NeroDigital has been included in the upcoming major release of Recode - Recode 2. Recode 2 begins where Recode 1 left of. Users of the previous version, and users of its cousin DVD Shrink - will immediately feel at home since the GUI is so familiar. And as Recode 1, Recode 2 can also be used to transcode DVDs to a DVD±R disc and in addition to put multiple DVDs on a single DVD±R disc. And then of course there's the NeroDigital mode which converts a DVD to an MP4 file using NeroDigital.

So, keep in mind, NeroDigital means a lot of things: NeroDigital audio is an AAC codec, NeroDigital video can mean an MPEG-4 ASP codec, or an MPEG-4 AVC codec. The only difference when Recode is concerned is the NeroDigital profile you select. The output, is an MPEG-4 standard MP4 file and can be played by any player capable of standard MPEG-4 video and audio (it must support the video codec you used though, an MPEG-4 ASP player cannot play AVC content, and the other way round).

Now here's the "but" part, and its a big "but":

There are many DVD players that can handle MPEG-4 ASP video, but only two that can handle NeroDigital as a whole (and even then only NeroDigital ASP, the AVC codec is not at all supported at the moment this guide is written). And while you could use just the ASP codec, Recode's output is MP4 and there are very few players that can handle this currently. Furthermore, hardly any standalone player can handle AAC audio. And even when you play it on the computer, you only get subtitles and chapters if you use the official Nero Media Player called Showtime. Also, there is currently no tool to edit MP4 files (cut, join).

*** see http://www.codinghorror.com/blog/archives/000170.html

The experts at CDFreaks loved Nero Recode2. Nero Recode is reliable and fast  .  .  .  When compared to the DivX and XVid encoders, Nero Recode2 was..
  • by far the easiest and most automatic encoder to use
  • 5x faster (single pass)
  • delivered superior video quality

But as we said before  .  .  .  very few systems are setup to play the files !!!  They are playable of course, but you need additional codecs which are not loaded on most machines.

No DivX compatible decoder can play the Recode2 MP4 files either.  Nero does not even make a standalone player for these odd files.  Nero calls their format "Nero Digital", but it's really just advanced MPEG4. It defaults to multi-channel AAC encoded sound instead of your typical (less sophisticated) Dolby Digital or MP3 encoded sound. AAC is a part of the MPEG4 spec, but it's not widely used. So you're forced to do one of the following:
  • install the annoying Nero Showtime application on any PC you want to watch your *.mp4 files from
  • pay $7 for the 3ivx decoder which-- and create a *.reg file to add in the following registry modification-- enables playback of *.mp4 files in good old Windows Media Player:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.mp4]
"PerceivedType"="video"
@="3ivx.mp4"
"Content Type"="video/mp4"

NOTE:  this does not work for me at all on WMP v9 !!!!  
Instead, I use WMplayer Classic (WMplayer 6.4) with the 3ivx codec and it works fine.

 

MPEG-4 Codecs (from Doom9's Codec Shootout 2005)

MPEG-4 Converters

*** actually, most of the codecs are converters too

(AVI-to-MPEG4, MPEG1/2-to-MPEG4)  - DivX, Xvid, NeroDigital , Fair Use Wizard

 

So what's holding it back?  

Well, right now, MPEG-2 is the rage, since it is the format used with DVD's.  Also, MPEG-4 is able to achieve its fantastic compression because its encoding algorithm is so damn complex !!  And the more complex the algorithm, the slower the encoding & decoding.  Bottom line, you can find Mpeg-4 encoders, but unless you have a blazing fast computer . . . settle in for long waits while the software crunches away.

Technical Definition of MPEG-4?

MPEG-4 (ISO 14496) is a broad Open Standard developed by the Moving Picture Experts Group (MPEG), a working group of the International Organization for Standardization (ISO) which also did the well known MPEG-1 (MP3, VCD) and MPEG-2 (DVD, SVCD) Standards, standardizing all sorts of audio/video compression formats and much more
By its nature the MPEG-4 Standard doesnt aim at standardizing one potential product (eg something comparable to DVD) but covers a broad range of Sub-Standards, which Product Providers can choose from to follow, according to what they need for their product

The MPEG-4 Standard, as mentioned, is divided into many different sub-standards, where for us users on Doom9 the following parts might be of major interest:
- ISO 14496-1 (Systems), Animation/Interactivity (like DVD Menus)
- ISO 14496-2 (Video), e.g. Advanced Simple Profile (ASP), as followed by XviD, DivX5, 3ivx...
- ISO 14496-3 (Audio), Advanced Audio Coding (AAC)
- ISO 14496-10 (Video), Advanced Video Coding (AVC), also known as H.264
- ISO 14496-14 (Container), MP4 container format (uses the .mp4 extension)
- ISO 14496-17 (Subtitles), MPEG-4 Timed Text subtitle format

MPEG-4 vs other Encoding Schemes