What is MP4?
MP4 is a container format. As any other container format like AVI (.avi), RealMedia (.rm, .rmvb), QuickTime (.mov), MPEG (.mpg, .mpeg), Matroska (.mkv, .mka), OGM (.ogm) it allows you to combine different multimedia streams (mostly audio and video) into one single file.
MP4 is a file extension for the container format defined in the Systems Part of the MPEG-4 standard (ISO 14496-1).
MP4 supports all kinds of multimedia content (multiple audio streams, video streams, subtitle streams, pictures) and advanced content (called “Rich Media” or “BIFS”) like 2D and 3D graphics, user interactivity, DVD-like menus.
MP4 is a streamable format.
MP4 file extensions
MP4 files can have the following extensions:
- .mp4 – official extension
- .m4v – .mp4 files with the WRONG extension introduced by Apple for video+audio files, .m4v can be safely renamed to .mp4 (.m4v is used in Apple iTunes and iPod)
- .m4a – .mp4 files with the WRONG extension introduced by Apple for audio-only files, .m4a can safely be renamed to .mp4
- .m4p – used by Apple iTunes for DRM protected files
- .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)
How to play streamed MP4 files (MP4 broadcasts)?
- Apple QuickTime Player – supports MPEG-4 SP, AVC and AAC
- Realnetworks RealPlayer 10 – supports MPEG-4 SP + B-frames (only in the “plus” version) and AAC
- MPlayer– the free (opensource) player, supports MPEG-4 ASP and AVC, available for various OSes, like Win, Linux, Mac OS..
- Videolan– free (opensource) player, supports MPEG-4 ASP and AVC, various OSes supported
- MPEG4IP WMP4Player – opensource (LGPL/MPL), supports MPEG-4 ASP and AVC
- Dicas Mpegable – supports RTP streaming, AAC, MPEG-4 ASP, AMR (.3gp audio) decoding
- EnvivioTV Plug-in – supports advanced content/BIFS (sample), AAC, MPEG-4 ASP and AVC in MP4
- GPAC Osmo4 – opensource (GPL), able to decode BIFS (subtitles, user interactivity, dvd-like menus…) and TTXT
The last two support streamed advanced content/user interactivity.
Also you can play streamed MP4 without the need to install a player (!) with the java applets from:
- MediaFrame (demos)
- IBM (interactive demos)
How to stream MP4 files?
Apple and MPEG4IP offer nice and free tools when it comes to streaming MP4: As a streaming server you can use Apple’s Darwin Streaming Server. For live streaming you can use mp4live from MPEG4IP (only for Linux), on Windows you can use MPEGRecorder (which seems to be a port of mp4live). Also have a look at the tools from ViTooKi (opensource Streaming Server, Player and other tools). Another free and opensource MP4 streaming server is available from Catra. For MAC you may use Live Channel.
- RTMP streaming serverslike Flash Media Server, Red 5,…
- MPEG4IP mp4live (Linux)
- Darwin Streaming Server by Apple
- MPEGRecorder (Windows)
- ViTooKi
- Catra
- Live Channel
What multimedia formats to use to create MP4 compliant files?
To create MP4 compliant files use audio/video formats covered by the MPEG-4 Standard:
- Use MP4 compliant video formats: MPEG-4 (XviD, DivX5, 3ivx, FFmpeg/ffvfw, NeroDigital AVC, x264, H.264/AVC), MPEG-2, MPEG-1, … Don’t use MS MPEG-4, MPEG-4 DivX3, WM9 (Windows Media 9), RV9 (Real Video 9)…
- Use MP4 compliant audio formats: MP3, AAC, MP2, MP1, CELP (speech), TwinVQ (very low bitrates), SAOL (midi), ALS (lossless) … Don’t use OGG Vorbis, Voxware Metasound, …
- Use MP4 compliant picture formats: JPEG, PNG
- Use MP4 subtitle/text format: MPEG-4 Timed Text
How to convert DRM copy-protected .M4P, .M4V, .M4B preserving ID3 tags?
Use DRM removal software like Tunebite. See unDRM.info for more.
More info about MP4
- MP4 FAQ at doom9
- MPEG Industry Forum
- Motion Picture Experts Group (MPEG)
- MPEG-4 Standard FAQ
- MPEG-4 Systems FAQ
- MPEG4IP guides on MP4 creation, compiling issues