MP4

**MP4**（エムピーフォー）はデジタルマルチメディアコンテナフォーマットである。映像・音声の格納によく用いられ、他にも字幕や静止画なども格納できる。MPEG-4規格の一部で、**MPEG-4 Part 14**（正式には**ISO/IEC 14496-14:2003**、ISO/IEC JTC 1）で標準化されている。

拡張子.mp4を推奨されており、MPEG-4の動画・音声の記録に用いられている。また、第3世代携帯電話の業界団体である3GPPおよび3GPP2でも、これに独自拡張を加えたものが標準ファイルフォーマットとして採用されている（あくまで標準でありキャリアごとにさらなる拡張が加えられている）。

## 歴史
2001年に最初の標準であるMPEG-4 Part1:Systems（ISO/IEC 14496-1:2001）が標準化された。この規格は後の規格と区別するため「MP4 version1」と呼ばれる。これはApple社のQuickTimeコンテナフォーマットをもとに策定された。

2003年には「MP4 version2」として知られる MPEG-4 Part14:MP4 file format（ISO/IEC 14496-14:2003）で標準化された。この規格は「ISOベースメディアファイルフォーマット」（MPEG-4 Part12、ISO/IEC 14496-12:2003）を拡張して作られている。

2004年には「MP4 AVCE」（MPEG-4 Part15、ISO/IEC 14496-15:2004）と呼ばれる拡張規格が定められ、H.264やAACを格納できるようになった。

## 技術詳細
### ISOベースメディアファイルフォーマット

MPEG-4の第12部 (ISO/IEC 14496-12) で規定されているISOベースメディアファイルフォーマットは木構造を持ち、各ノードを**ボックス** (**box**) と呼ぶ。あるいは、元になったQuickTimeファイルフォーマットの用語である**アトム** (**atom**) と呼ぶこともある。また、一つないし複数のボックスを子要素として持つことができるボックスがあり、その親要素のボックスを**コンテナボックス** (**container box**) ないし単に**コンテナ**と呼ぶ。コンテナが子要素以外のデータを持つことはできない。各ボックスの先頭には符号なし32ビット整数型の自身のサイズおよび、半角英数4文字（32ビット）のボックスタイプが必ず与えられる。なお、慣例的にボックスタイプは小文字で記述される。

ボックス構造を採用したことにより、複数の**トラック** (**track**) を同時に1つのファイルに格納したり、時刻情報やメタデータを記述することにより多重化や任意時刻でのアクセス（ランダムアクセス）を容易に実現できる。また、さまざまな種類のメディアを柔軟に扱えるという特徴もあり、MP4のようにMPEGに完全に準拠したメディアのみを含むことだけでなく、3GPP/3GPP2などのようにMPEGの規格外であるAMRやH.263などのメディアを含むことも可能である。

ボックス構造の扱い方はある程度はユーザが任意に決めることができる。例えば、動画、音声などのストリームを単純に直列に並べることも可能であり、また、同期やランダムアクセスを容易にするために動画と音声を細切れに格納することも可能である。

#### ボックス構造
ISOベースメディアファイルフォーマットのボックス構造は木構造をとるが、ここでは主なボックスについて述べる。実際には多数の木構造のボックスが含まれ、さまざまなレベルの情報を柔軟に格納することができるようになっている。

* ftyp：ファイルタイプの記述。ファイルの先頭にただ一つだけ含まれる。
* moov：全てのメタデータを含むコンテナ。ファイル中にただ一つだけ含まれる。メタデータとして含まれる情報としては、各トラック（動画、音声など）のヘッダ情報やコンテンツの内容のメタ記述、時刻情報などが含まれる。
* mdat：トラックのメディアデータ本体のコンテナ。ファイル中のmdatボックスの数は任意である。すなわち、動画と音声、動画だけ、音声だけ、あるいは複数の種類のトラックを同時に含む、などのように、任意のトラック構成を持てるようになっている。

### MP4ファイルフォーマット
MP4ファイルフォーマットは、ISOベースメディアファイルフォーマットに対して、MPEG-4のオブジェクト符号化に対応するためのオブジェクト記述ボックス (iods) の追加や、動画や音声などのエレメンタリストリームに関する情報を記述するサンプル記述ボックス (mp4v, mp4a, mp4s) の追加などの拡張を行ったものである。

#### 格納できるメディアの種類
MP4ファイルは以下に示す映像・音声コーデックのメディアデータを組み合わせて（多重化して）格納し利用できる。

* ビデオ：MPEG-1、MPEG-2、MPEG-4 Visual (MPEG-4 Part 2)、H.264/MPEG-4 AVC (MPEG-4 Part 10)、H.265 (H.265/HEVC)、AV1 など
* オーディオ：AAC、HE-AAC、MP3、MP2、MP1、MPEG-4 ALS、TwinVQ、CELP（**QCELPとは異なるので注意）**、Opus など
* 静止画：PNG、JPEG
* テキスト

また、3GPP/3GPP2ファイルフォーマットでは、H.263、MPEG-4（オプション）、AMR、AACなどを格納できる。

#### 拡張子
仕様書では、MP4ファイルの拡張子は.mp4が望ましいとされている。
* .m4v、.m4a、.m4pはApple社が決めた拡張子であり、iTunes Storeで配信されるファイルはDRM技術のFairPlay (.m4v, .m4p) とISOで標準化されていないAC-3 (.m4v) が使用されることがある。また、.m4aではApple Losslessがサポートされる。

また、派生フォーマットである3GPP/3GPP2ファイルフォーマットの拡張子はそれぞれ.3gp、.3g2である。

また、.m4rという拡張子もあり、これはiPhone用着信メロディに使われる拡張子であるが、中身は40秒までの長さの制約がついたMP4オーディオファイルそのものである。

また、Adobe FlashのFlash Videoでは.f4vという拡張子が使われている。

## 利用例
MP4は下記に採用されており、実際に利用されている。

* Adobe Flash Player 9以降
* WALKMAN
* iPod
* iPhone
* iPad
* PlayStation 3
* QuickTime
* Wii（写真チャンネル、音声ファイルのみの対応）
* 携帯電話
* PlayStation Portable (PSP)
* PlayStation Vita (PS Vita)
* XMedia Recode
* YouTube
* ニコニコ動画
* ニンテンドーDSi
* SONY XDCAM EX
* Windows Media Player 12以降
* Windows Phone (Windows Mobile)
* Android
* DivX Plus v9以降
* mora
* chromebook

## 脚注

## 関連項目
* HTML5
* M4A
* データ圧縮
* MPEG-4
* JPEG 2000

## 外部リンク
* 竹松昇, MPEGラボ 第26回 携帯ゲーム機PSPの動画ファイル「MP4」とは何か, 朋栄アイ・ビー・イー
* AAC音声のMP4動画の作り方（妖精現実フェアリアル）, 個人サイト
* , 個人サイト
* , 個人サイト
* MP4のタグ付けツール MP4TagWriter