MP4-AT ファイル形式は、キャプチャ後の編集と合成に役立つ補助トラック(デプスマップ動画トラックなど)を、再生可能なメディアデータとともに ISOBMFF/MP4 構造に保存することをサポートしています。
この形式の目的は、この仕様を実装していないクライアントに対してトラックを非表示にするような方法で補助トラックを保存することです。これにより、クライアントが補助トラックを再生可能なデータとして解釈するのを防ぐことができます。
依存関係
この仕様の引用規格は次のとおりです。
- RFC で要件レベルを示すために使用するキーワード(RFC 2119)
- ISO/IEC 14496-12:2022 ISO Box media file format(ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Coding of audio-visual objects Part 10: Advanced video coding(AVC)
- ISO/IEC 23008-2:2023 High efficiency coding and media delivery in heterogeneous environments Part 2: High efficiency video coding(HEVC)
- VP9 動画コーデック(VP9)
- AV1 ビットストリームとデコード プロセスの仕様(AV1)
- Dynamic Depth 1.0 の仕様
はじめに
「MUST」、「MUST NOT」、「REQUIRED」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」の使用は、RFC2119 で定義されている IETF 標準に従います。
MP4-AT ファイル形式
MP4-AT ファイル形式は、さまざまな編集オペレーションを可能にするために、プライマリ トラックと補助トラックで構成されています。メイントラック(ボケ効果が適用された動画トラックなど)は通常どおり MP4 ファイルに書き込まれますが、補助トラックは Auxiliary Tracks MP4 に書き込まれます。Auxiliary Tracks MP4 は、MP4 に準拠した別のコンテナで、axte
(Auxiliary Tracks Extension)ボックス内に配置されます。axte
ボックスはファイル内の最後のボックスにすることをおすすめします。これにより、ファイルを切り捨てて補助データを削除できます。
この形式は下位互換性があります。この形式の残りの部分をサポートしていないプレーヤーは、ファイルを読み込むときにメインの動画トラックを読み取って再生します。
このファイルには、mdta
ハンドラを含む moov.meta
ボックスがあり、次のメタデータが含まれています。メタデータは任意の順序で表示できます。
メタデータキー |
タイプ インジケーター |
値 |
|
78(ビッグ エンディアン 64 ビット符号なし整数) |
|
|
78(ビッグ エンディアン 64 ビット符号なし整数) |
|
補助トラック拡張機能(axte)ボックス
構文
axte
ボックスは、ISO/IEC 14496-12:2022: 4.2 で定義されているボックスのセマンティクスを使用して記述されます。
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
ここで、データ フィールドにはAuxiliary Tracks MP4 が含まれています。
ペイロード
axte
ボックスのペイロードは、Auxiliary Tracks MP4 です。Auxiliary Tracks MP4 は通常の MP4 構造になっています。
Auxiliary Tracks MP4 には、すべての補助トラックのサンプル メタデータが含まれています。すべての補助トラック サンプル ペイロードは、補助トラック MP4 の mdat
ボックスまたは外側の MP4 の mdat
ボックスのいずれかに保存する必要があります(両方ではありません)。
前者の場合、auxiliary.tracks.interleaved
は 0 に設定する必要があります(下記の「静的メタデータ」を参照)。axte.moov
ボックスのサンプル オフセットは、Auxiliary Tracks MP4 の開始を基準としています。これにより、Auxiliary Tracks MP4 が自己完結型になります。つまり、Auxiliary Tracks MP4 は外側の MP4 を参照せずに単独で読み取ることができます。
後者の場合、auxiliary.tracks.interleaved
は 1 に設定する必要があります(下記の「静的メタデータ」を参照)。axte.moov
ボックスのサンプル オフセットはファイルの先頭を基準としており、プライマリ トラックと補助トラックのサンプル ペイロードはインターリーブされる場合があります。この場合、axte.mdat
ボックスは存在しない場合があります。
静的メタデータ
Auxiliary Tracks MP4 には、次のメタデータを含む mdta
ハンドラを含む moov.meta
ボックスが含まれています。メタデータは任意の順序で表示できます。
メタデータキー |
タイプ インジケーター |
値 |
(省略可) |
75(8 ビット符号なし整数) |
0: サンプルがインターリーブされておらず、 1: メイン動画トラックの その他の値はすべて予約済みであり、使用できません。 このメタデータがない場合、デフォルト値 0 が指定されます。 |
|
0(予約済み) |
バイナリ形式:
|
auxiliary.tracks.map
内のトラックタイプの順序は、Auxiliary Tracks MP4 のペイロード内の順序を示します。
補助トラックタイプ
Auxiliary Tracks MP4 には、編集に役立つ次の動画トラックとメタデータ トラックが含まれている場合があります。
シャープな動画トラック
編集可能なエフェクトが適用されていない、元の解像度の動画。動画トラックは、メイン動画トラックとは異なる解像度で保存される場合があります。シャープな動画トラックには、任意の一般的な動画コーデックを使用できます。また、標準またはハイダイナミック レンジにすることもできます。
奥行き動画トラック
深度動画トラックは、標準のグレースケール動画としてエンコードされた深度情報を提供します。これは、デプスの特別なデコードまたはエンコードのサポートがないデバイスで、デプス トラックのデコードとエンコードを可能にするためのものです。深度動画トラックでは、H.264/AVC、H.265/HEVC、VP9、AV1 などの一般的な動画コーデックを使用できます。深度動画トラックは 8 ビットまたは 10 ビット、リニアまたは逆エンコードにできます(Dynamic depth 1.0 仕様を参照)。
時間指定された深度メタデータ トラック
時間指定された深度メタデータ トラックには、深度を計算するための正規化値と、ボケ効果のぼかし半径の計算に使用できる焦点テーブルが含まれています。
サンプルの MIME タイプ |
|
サンプル構文 |
バイナリ形式(すべての整数はリトル エンディアン):
|
半透明の動画トラック
対応するフレームの各ピクセルのアルファ値(透明度)を格納する動画トラック。最小値は完全に透明、最大値は完全に不透明を表します。中間の値は、線形スケールで異なるレベルの半透明度を表します。合成では、乗算前でない色値で通常のブレンドモードが使用されます。深度動画トラックと同様に、このトラックも標準のグレースケール動画としてエンコードする必要があります。
ユースケースの例
再生可能なレンダリングされたボケ動画をメイントラックに保存し、元の(ぼかし前)シャープなカラーデータと深度マップの補助動画トラック、各フレームのフォーカス ポイントを反映した深度メタデータを含む補助のタイミング付きメタデータ トラックを保存します。補助トラックは、動画エディタで使用して、被写体のフォーカスを変更し、高品質のボケ動画トラックを再レンダリングできます。
事前レンダリングされた半透明の「ステッカー」動画(白色の背景にアニメーション エモジの動画など)をメインの動画トラックに保存し、アルファマップを含む補助動画トラックを作成する。コンポジタは、この補助トラックを使用して、補助トラックからの半透明情報を使用してステッカーを背景とブレンドできます。