MP4 file format

MPEG-4 Part 14, or MP4, is a digital multimedia container format most commonly used to store video and audio, but it can also be used to store other data such as subtitles and still images. Like most modern container formats, it allows streaming over the Internet. The only filename extension for MPEG-4 Part 14 files as defined by the specification is .mp4. MPEG-4 Part 14 (formally ISO/IEC 14496-14:2003) is a standard specified as a part of MPEG-4.

Portable media players are sometimes advertised as "MP4 players", although some are simply MP3 players that also play AMV video or some other video format and do not necessarily play the MPEG-4 Part 14 format.

History
MPEG-4 Part 14 is an instance of the more general ISO/IEC 14496-12:2004 (MPEG-4 Part 12: ISO base media file format), which is directly based upon the QuickTime File Format, which was published in 2001. MPEG-4 Part 14 is essentially identical to the QuickTime File Format but formally specifies support for Initial Object Descriptors (IOD) and other MPEG features. MPEG-4 Part 14 revises and completely replaces Clause 13 of ISO/IEC 14496-1 (MPEG-4 Part 1: Systems), in which the file format for MPEG-4 content was previously specified.

The MPEG-4 file format, version 1, was published in 2001 as ISO/IEC 14496-1:2001, which is a revision of the MPEG-4 Part 1: Systems specification published in 1999 (ISO/IEC 14496-1:1999). In 2003, the first version of the MP4 file format was revised and replaced by MPEG-4 Part 14: MP4 file format (ISO/IEC 14496-14:2003), commonly named as MPEG-4 file format version 2. The MP4 file format was generalized into the ISO Base Media File format ISO/IEC 14496-12:2004, which defines a general structure for time-based media files. It in turn is used as the basis for other file formats in the family (for example, MP4, 3GP, and Motion JPEG 2000).

The MP4 file format defined some extensions over the ISO Base Media File Format to support MPEG-4 visual/audio codecs and various MPEG-4 Systems features such as object descriptors and scene descriptions. Some of these extensions are also used by other formats based on the ISO base media file format (e.g., 3GP). A list of all registered extensions for ISO Base Media File Format is published on the official registration authority website. The registration authority for code-points (identifier values) in "MP4 Family" files is Apple Inc., and it is named in Annex D (informative) in MPEG-4 Part 12. Codec designers should register the codes they invent, but registration is not mandatory, and some invented and used code-points are not registered. When someone is creating a new specification derived from the ISO Base Media File Format, all the existing specifications should be used both as examples and as a source of definitions and technology. If an existing specification already covers how a particular media type is stored in the file format (e.g., MPEG-4 audio or video in MP4), that definition should be used, and a new one should not be invented.

Filename extensions
While the only filename extension defined by the standard is .mp4, various filename extensions are commonly used to indicate intended content:
 * MPEG-4 files with audio and video generally use the standard .mp4 extension.
 * Audio-only MPEG-4 files generally have a .m4a extension. This is especially true of unprotected content.
 * MPEG-4 files with audio streams encrypted by FairPlay Digital Rights Management as were sold through the iTunes Store use the .m4p extension. iTunes Plus tracks, that the iTunes Store currently sells, are unencrypted and use .m4a accordingly.
 * Audiobook and podcast files, which also contain metadata including chapter markers, images, and hyperlinks, can use the extension .m4a, but more commonly use the .m4b extension.
 * The Apple iPhone uses MPEG-4 audio for its ringtones but uses the .m4r extension rather than the .m4a extension.
 * Raw MPEG-4 Visual bitstreams are named .m4v but this extension is also sometimes used for video in MP4 container format.
 * Mobile phones use 3GP, an implementation of MPEG-4 Part 12 (a.k.a. MPEG-4/JPEG2000 ISO Base Media file format), similar to MP4. It uses .3gp and .3g2 extensions. These files also store non-MPEG-4 data (H.263, AMR, TX3G). In practice, most (if not all) low end phones and feature phones record in this format, as most (if not all) other mobile phones and smartphones record MP4 files using the .mp4 file extension, and some high end phones can record in .raw.

Data streams
Most kinds of data can be embedded in MPEG-4 Part 14 files through private streams. A separate hint track is used to include streaming information in the file. The registered codecs for MPEG-4 Part 12-based files are published on the website of MP4 Registration authority (mp4ra.org), but most of them are not widely supported by MP4 players. The widely supported codecs and additional data streams are (but many more are also supported, including audio like FLAC or TrueHD):
 * Video: MPEG-H Part 2 (H.265/HEVC), MPEG-4 Part 10 (H.264/AVC), MPEG-4 Part 2 and AV1
 * Other compression formats are less used: MPEG-2 and MPEG-1


 * Audio: Advanced Audio Coding (AAC)
 * Also MPEG-4 Part 3 audio objects, such as Audio Lossless Coding (ALS), Scalable Lossless Coding (SLS), MP3, MPEG-1 Audio Layer II (MP2), MPEG-1 Audio Layer I (MP1), CELP, HVXC (speech), TwinVQ, Text To Speech Interface (TTSI) and Structured Audio Orchestra Language (SAOL)
 * Other compression formats are less used: Apple Lossless, Free Lossless Audio Codec (added in late 2018), and Opus (added in late 2018)


 * Subtitles: MPEG-4 Timed Text (also known as 3GPP Timed Text).
 * Nero Digital uses DVD Video subtitles in MP4 files

The moov atom contains information about video resolution, frame rates, orientation, display characteristics, and more. It might be placed at the beginning or end of the file. In the latter case, the video file is not playable if the file is incomplete (truncated).

Metadata
MP4 files can contain metadata as defined by the format standard, and in addition, can contain Extensible Metadata Platform (XMP) metadata.