MP4 は、最もよく目にする動画ファイル形式です。正式名称は MPEG-4 Part 14 で、MPEG 動画規格を定めた国際団体である Moving Picture Experts Group によって定義されました。MPEG はゼロから作ったわけではなく、Apple の QuickTime ファイル形式を土台にして ISO Base Media File Format に仕立て、その上に MP4 を構築しました。このため、MP4 と MOV の内部構造はとてもよく似ています。スマホ、カメラ、編集アプリ、ストリーミングサービスやメッセージングアプリはどれも MP4 を採用しており、そのおかげでほとんどあらゆる機器で再生できます。
MP4 ファイルの構成
MP4 はコンテナ形式です。コンテナ自体は圧縮を行わず、すでに圧縮されたストリームを入れておき、プレーヤーにその読み方を指示する箱の役割をします。圧縮を行うのはコーデックで、MP4 の中で使われるコーデックは、映像なら通常 H.264、H.265(HEVC とも呼ばれます)または AV1、音声なら AAC です。これらはいずれも非可逆圧縮で、目や耳では気づきにくい細部を捨ててしまい、その情報は二度と戻りません。MP4 を編集アプリで再保存すると再度圧縮がかかり、そのたびに少しずつ情報が失われます。
内部では、ファイルは box または atom と呼ばれるブロックの木構造になっています。どのブロックにも 4 文字の名前があります。先頭の ftyp はその MP4 の種類を示し、mdat には圧縮済みの動画と音声データが入り、moov は再生時間を mdat 内の位置に対応付けるインデックスです。音声と動画は小さなかたまりごとに交互に並べられており、プレーヤーが同時に読み込めるようになっています。moov がファイルの先頭にある場合は、ダウンロードが完了する前に再生を開始でき、アプリが「fast start」と呼んでいるのはこの状態です。
MP4 ファイルに含まれるメタデータ
MP4 のメタデータも同じ box の中に保存されるため、MP4 のレポートには技術的な情報と説明的なタグが混在します。
- ムービーヘッダー
mvhdには、作成日時と更新日時、全体の再生時間、その計測に使うタイムスケールが保存されています。 - 各トラックにはそれぞれ専用のヘッダーがあり、画面サイズ、クリップが横向きで撮影されたかどうかをプレーヤーに伝える回転行列、言語コード、ハンドラー名が含まれています。
- ストリーム記述には、コーデック名、フレームレート、ビットレート、音声サンプルレート、チャンネル数が記録されます。
- 説明的なタグは、iTunes 形式のタグリストと呼ばれることの多いユーザーデータブロックに格納されます。フィールド名は著作権記号から始まり、タイトル、アーティスト、アルバム、年、ジャンル、コメント、エンコーダーに加え、アートワークや説明文のフィールドがあります。音楽や動画ストアから入手したファイルでは、このブロックが埋められています。
中には個人情報も含まれます。スマホはよく、緯度と経度、場合によっては高度を座標として GPS 位置情報フィールドに書き込みます。Apple デバイスはさらに独自のキーも追加し、カメラメーカー名、モデル名、OS バージョン、録画時のタイムゾーン付き作成日時などを保存します。Android スマホも同様の方法で位置情報を書き込みます。Adobe の編集・デザインソフトは、タイトル、作者、著作権、編集履歴を繰り返し記録した構造化テキストのブロックである XMP パケットを埋め込むこともできます。自分で撮影したクリップを公開する予定がある場合は、デバイス情報と位置情報のフィールドを削除しておく価値があります。
MP4 を選ぶべきとき
再生先を自分で管理できない場合は、MP4 を選びましょう。たとえばウェブサイト、送信先のスマホ、テレビ、クライアントのノートパソコンなどです。これほど広くサポートされている形式はほかになく、H.264 のハードウェアデコードはほぼすべての市販ディスプレイに組み込まれています。
分かりやすい代替として MKV があります。MKV はより多くの音声トラックや字幕形式、チャプター、添付ファイルを扱え、多言語音声を持つ映画のアーカイブとして適しています。MP4 はあえて機能を絞り、そのぶん信頼性を高めています。WebM は、H.264 や HEVC に特許ライセンスが必要であることから、ウェブでロイヤリティフリーのコーデックを使いたいときの選択肢です。また、コンテナだけを変えたい場合は再エンコードではなくリマックスを行いましょう。既存のストリームを新しいコンテナにコピーするだけなら、画質は一切劣化しません。