MPEG-4 containers : mp4, m4a, m4p, m4v

Last update : September 16, 2013

To play H264 encoded movies, the encoded video and audio files must be packaged in a specific type of container following the MPEG-4 Part 12 specification. Stream packaging, also known as muxing, is the procedure to combine multiple elements that enable control of the distribution delivery process into a single multiplexed media file.

The most common container for H264 encoded videos is specified by MPEG-4 Part 14 (standard ISO 14496-14) and has the file extension mp4. This format, often called MP4 container,  is based on the quicktime format mov. Audio-only MPEG-4 files have a m4a extension, or m4p when they are encrypted.

Apple introduced the extension m4v for it’s iTunes applications. It’s very close to .mp4, some differences are the optional Apple’s DRM copyright protection, and the treatment of AC3 (Dolby Digital) audio which is not standardized for MP4 container

The following command line tools are available to create and modify MP4 files by combining (multiplexing) previously encoded video or audio tracks, as well as subtitles, chapter information and meta data.

  • AtomicParsley : lightweight program for reading, parsing and setting metadata into MPEG-4 files
  • MP4Creator : tool from Cisco’s mpeg4ip suite that combines video, audio, text and other media to create MPEG-4 streams.

GUI’s for both programs are also available. Atomicparsleygui is a GUI for AtomicParsley, MP4Muxer is a GUI for MP4Creator. All these programs have not been updated during the last four years. A better choice for MPEG-4 tools today is FFmpeg and MP4Box.

More informations about the MPEG-4 containers are listed hereafter :