MP4 streaming FAQ
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)?
The last two support streamed advanced content/user interactivity.
- 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 - 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
Also you can play streamed MP4 without the need to install a player (!) with the java applets from:
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.
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
Hint: Looking for an easy way to convert Youtube to MP3 or download YouTube Videos? Try Freecorder.