Is it possible to create Variable Framerate (VFR) content in MP4? What do I have to especially look at, when i mux MPEG-4 video from AVI to MP4? Does transmuxing to MP4 reencode the content? Does MP4 support CRC/EDC or ECC? Is it possible to find out which codecs where used to create a MP4 file?
Is it also possible to place streams not covered by the MPEG-4 standard in MP4?
Yes, altough i dont like the idea of doing so, the MPEG-4 standard defines how to place any stream in MP4. Similar to how streams are marked in AVI with private FourCCs, in MP4 they get a "private track ID". Note that no player will be able to handle such streams in MP4, but will simply ignore them, if not explicitely specified to do so
the following streams, not covered by MPEG-4, can be placed in MP4 already:
- Ogg Vorbis and Ogg Theora, via MP4Box
- Ogg Vorbis, via a patched mp4creator
- Apple's Lossless Audio (ALAC/ALE - not compliant with MPEG-4 ALS), via iTunes
- DVD picture subtitles (Vobsubs), via Nero Recode2
- AMR Speech Audio, via the NEC e808/e616 mobile phone
only the future will show if these private streams will be widely accepted and supported...
1) "delay frames", caused by the old VFW interface some codecs still use (XviD, DivX5). only when encoding with VirtualDub/Mod these will be automatically dropped when using b-frames
2) "packed bitstream", caused by the old AVI container, which is not really capable of storing b-frames. PB is used in DivX5 (only with 1 consecutive b-frame set) and by default in new XviD builds (make sure the PB option is unticked in XviD) and packs b-frames together with other frames.
3) "ctts" atom, which has to be written when muxing b-frames into MP4
4) "vol", which is placed on every keyframe in AVI, but has to be seperated from the movie data in MP4
Currently only the 3ivx mp4 muxer and GPAC's MP4Box handle all these things correctly! use only them for AVI conversions, especially with packed bitstreams or if you are unsure which b-frame option/encoding app was used. otherwise the chance is great that you will not get a 100% spec compliant MP4 file!
Where can I find a MP4 bitrate calculator? Why are MP4 files created from AVI smaller than the source itself?
MP4 needs far less overhead than the AVI container (especially with VBR-MP3), no wonder cause in contrary to AVI the MP4 container was designed for storing MPEG-4 Video and MP3
As a rule of thumb you can say that the video AVI filesize = final audio+video MP4 size (like 700MB) - audio MP4 size + 3MB
3ivx also offers a MP4 bitrate calculator on their website, but it doesnt seem to be very accurate
Does MP4 support CRC/EDC or ECC?
No, the MP4 container itself doesnt handle this as the MPEG-4 standard expects the Error Detection/Correction to be placed in the bitstreams (where it belongs)
Is it possible to find out which codecs where used to create a MP4 file?
Yes, this is already possible for MPEG-4 ASP video streams and MP3 Audio streams (currently no real solution for AAC exists)
Yes and No. No, because MP3 is one specific type of audio format, whereas MP4 is a container format and not an audio codec. Yes, because MP4 is part of the MPEG-4 Standard, which can be taken as the successor of the MPEG-1/2 standard, where MP3 was part of.
MPEG-4 also includes AAC, an audio codec better than MP3, which most of the time comes in the MP4 format
Apple's MOV container format was indeed taken as a starting point for MP4 (mainly the moov atom), but there are also lots of differences between them.
MP4 on the other hand itself was the starting point for the development of the 3GP format (mainly for mobile phones), which has more in common with MP4 as MP4 with MOV for example, but still is a different format
Where can I find more infos about MP4?
there are a lot of infos availabe on the net:
a starting point can be the homepage of the MPEG Industry Forum or the Motion Picture Experts Group (MPEG)
some documentation on MP4 is also available from here, here and here
A draft of the MPEG-4 Systems Standard can be found here
FAQs are available about the MPEG-4 Standard or especially about MPEG-4 Systems (very technical)
other infos can be found on the audiocoding wiki (with a lot of info also about AAC)
Guides on MPEG4IP are available about MP4 creation, compiling issues or on their CVS Server and from everwicked.com
(thanks a lot to hans-j?rgen and ac-chan123 for these links)





