MP4 With Auxiliary Tracks Extension (MP4-AT) File Format 0.9

MP4-AT 檔案格式可在 ISOBMFF/MP4 結構中,儲存可在播放媒體資料旁邊的輔助音軌,這些輔助音軌可用於後製編輯和合成 (例如深度地圖影片音軌)。

這類格式的目標是儲存輔助音軌,以便將音軌隱藏起來,不讓未實作此規格的用戶端存取。如此一來,用戶端就不會將輔助音軌解讀為可播放的資料。

依附元件

以下是本規格的規範參考資料:

簡介

使用「MUST」、「MUST NOT」、「REQUIRED」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」和「OPTIONAL」等詞彙,是根據 RFC2119 中定義的 IETF 標準。

MP4-AT 檔案格式

MP4-AT 檔案格式包含主要音軌和輔助音軌,可用於執行各種編輯作業。主要音軌 (例如已套用散景效果的視訊音軌) 會照常寫入 MP4 檔案,而輔助音軌則會寫入 輔助音軌 MP4。輔助音軌 MP4 是另一個符合 MP4 規範的容器,並放在 axte(輔助音軌擴充功能) 方塊內。建議將 axte 方塊設為檔案中的最後一個方塊,方便透過截斷檔案的方式移除輔助資料。

這個格式可向下相容:不支援此格式其餘部分的播放器會在載入檔案時讀取及播放主要影片音軌。

線圖:示範 MP4-AT 檔案中元素的排列方式

檔案包含 moov.meta 方塊,其中含有 mdta 處理常式,內含下列中繼資料。中繼資料可按任意順序顯示。

中繼資料鍵

類型指標

值

auxiliary.tracks.offset

78 (大端 64 位元不帶正負號整數)

axte 方塊的檔案偏移量 (以位元組為單位)

auxiliary.tracks.length

78 (大端 64 位元不帶正負號整數)

axte 方塊的長度 (以位元組為單位)

輔助音軌擴充功能 (axte) 方塊

語法

axte 方塊的說明,使用 ISO/IEC 14496-12:2022: 4.2 中定義的方塊語意

aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
  bit(8) data[];
}

其中資料欄位包含輔助音軌 MP4。

酬載

axte 方塊的酬載是輔助音軌 MP4。輔助音軌 MP4 具有一般 MP4 結構。

線圖:輔助音軌 MP4 中的元素排列方式

輔助音軌 MP4 包含所有輔助音軌的範例中繼資料。所有輔助音軌樣本酬載都必須儲存在 輔助音軌 MP4 的 mdat 方塊中,或外部 MP4 的 mdat 方塊中 (但不能同時儲存在兩者中)。

在前一種情況下,auxiliary.tracks.interleaved 必須設為 0 (請參閱下方的「靜態中繼資料」),axte.moov 方塊中的取樣偏移量則是相對於 輔助音軌 MP4 的開頭。這會讓輔助音軌 MP4 自成體系,也就是說,輔助音軌 MP4 可獨立讀取,不必參照外部 MP4。

在後一種情況下,auxiliary.tracks.interleaved 必須設為 1 (請參閱下方的「靜態中繼資料」),且 axte.moov 方塊中的樣本偏移量會相對於檔案開頭,而主要和輔助音軌的樣本酬載可能會交錯。在這種情況下,axte.mdat 方塊可能會缺少。

靜態中繼資料

輔助音軌 MP4 包含 moov.meta 方塊,其中含有 mdta 處理常式,後者包含下列中繼資料。中繼資料可按任意順序顯示。

中繼資料鍵

類型指標

值

(選用) auxiliary.tracks.interleaved

75 (8 位元無符號整數)

0:表示樣本未交錯,且位於 axte.mdat 方塊中

1:表示在主要影片軌道的 mdat 方塊中交錯取樣

所有其他值皆為保留值,不得使用。

如果沒有這個中繼資料,則表示預設值為 0。

auxiliary.tracks.map

0 (保留)

二進位格式:

  • 1 位元組版本 = 1
  • 1 位元組曲目數量 = n
  • 從下列集合中取得 n 個位元組的曲目類型
    • 0 = 清晰的影片
    • 1 = 深度影片 (線性)
    • 2 = 深度影片 (反向)
    • 3 = 時間深度中繼資料
    • 4 = 半透明影片
    • 5-127 = 保留供日後使用
    • 128-255 = 自訂軌道類型

auxiliary.tracks.map 中的音軌類型順序,會指出這些音軌在 輔助音軌 MP4 酬載中的順序。

輔助測試群組類型

輔助軌 MP4 可能包含以下影片和中繼資料軌,可供編輯使用。

Sharp 視訊軌

完整解析度的影片,未套用可編輯特效。視訊軌的解析度可能與主要視訊軌不同。高清影片軌可使用任何常見的影片編碼器,並可採用標準或高動態範圍。

深度視訊軌

深度視訊軌道會提供深度資訊,並以標準灰階影片格式編碼。這麼做是為了讓裝置在沒有任何深度解碼或編碼支援的情況下,也能解碼及編碼深度音軌。深度影像軌可使用 H.264/AVC、H.265/HEVC、VP9、AV1 或任何其他常見的影片轉碼器。深度影像軌可為 8 位元或 10 位元,並採用線性或反向編碼 (請參閱動態深度 1.0 規格)。

時間深度中繼資料音軌

時間深度中繼資料軌跡包含用於計算深度的標準化值,以及可用於計算散景效果模糊半徑的焦點表。

範例 MIME 類型

application/x-depth-metadata

語法範例

二進位格式 (所有整數皆為小端序):

  • 近距離 (16 位元浮點)
  • 遠距離 (16 位元浮點)
  • 焦點表項目數 (16 位元整數)
  • 焦點資料表項目
    • 進入距離 (16 位元浮點)
    • 進入半徑 (16 位元浮點)
半透明視訊軌

影片音軌會儲存對應影格中每個像素的 Alpha 值 (透明度)。最小值表示完全透明,最大值則表示完全不透明。介於兩者之間的值代表線性刻度上不同的半透明度,而合成作業會使用正常混合模式,並使用非預先相乘的色彩值。與深度視訊軌道類似,這個軌道也應編碼為標準灰階影片。

應用實例

  • 在主要軌道中儲存可播放的經過算繪的散景影片,其中包含原始 (預模糊處理) 高對比色彩資料和深度地圖的輔助影片軌道,以及包含每個影格焦點的深度中繼資料輔助計時中繼資料軌道。接著,您可以在影片編輯器中使用輔助軌,修改焦點主體,並重新算繪高品質的散景效果影片軌。

  • 儲存預先算繪的半透明「貼圖」影片,例如在主要影片軌中,以白色背景顯示動畫表情符號影片,並在輔助影片軌中加入包含 Alpha 遮罩的影片。接著,合成器可使用輔助軌,根據輔助軌的半透明資訊,將貼圖與背景混合。