Yardımcı Parça Uzantısı (MP4-AT) İle MP4 Dosya Biçimi 0.9

MP4-AT dosya biçimi, ISOBMFF/MP4 yapısında oynatılabilir medya verilerinin yanı sıra kayıt sonrası düzenleme ve kompozisyon için yararlı olan yardımcı parçaların (ör. derinlik haritası video parçası) depolanmasını destekler.

Bu biçimin amacı, yardımcı parçaları bu spesifikasyonu uygulamayan istemcilerden gizleyecek şekilde depolamaktır. Bu sayede istemciler, yardımcı parçaları oynatılabilir veri olarak yorumlamaz.

Bağımlılıklar

Aşağıda bu spesifikasyonla ilgili normatif referanslar verilmiştir:

Giriş

"MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" ve "OPTIONAL" ifadeleri RFC2119'da tanımlanan IETF standardına göre kullanılmaktadır.

MP4-AT dosya biçimi

MP4-AT dosya biçimi, çeşitli düzenleme işlemlerini etkinleştirmek için birincil parçalardan ve yardımcı parçalardan oluşur. Birincil parçalar (ör. üzerine bokeh efekti uygulanmış bir video parçası) her zamanki gibi MP4 dosyasına yazılır. Yardımcı parçalar ise Yardımcı Parçalar MP4 dosyasına yazılır. Yardımcı Parçalar MP4, MP4 ile uyumlu başka bir kapsayıcıdır ve axte(Yardımcı Parçalar Uzantısı) kutusuna yerleştirilir. axte kutusunun dosyanın son kutusu olması önerilir. Bu, dosyayı kısaltarak yardımcı verileri kaldırmayı kolaylaştırır.

Bu biçim geriye dönük uyumludur: Bu biçimin geri kalanını desteklemeyen oynatıcılar, dosyayı yüklerken birincil video parçalarını okur ve oynatır.

Bir MP4-AT dosyasındaki öğelerin düzenlenmesini gösteren çizgi şeması

Dosyada, aşağıdaki meta verileri içeren mdta işleyicisine sahip bir moov.meta kutusu vardır. Meta veriler herhangi bir sırada görünebilir.

Meta veri anahtarı

Tür göstergesi

Değer

auxiliary.tracks.offset

78 (büyük endian 64 bit işaretsiz tam sayı)

axte kutusunun dosya ofseti (bayt cinsinden)

auxiliary.tracks.length

78 (büyük endian 64 bit işaretsiz tam sayı)

axte kutusunun uzunluğu (bayt cinsinden)

Yardımcı ray uzantısı (axte) kutusu

Sözdizimi

axte kutusu, ISO/IEC 14496-12:2022: 4.2 bölümünde tanımlanan kutu semantiği kullanılarak açıklanır.

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

Veri alanında Yardımcı Parçalar MP4 yer alır.

Yük

axte kutusunun yükü bir Yardımcı Parça MP4 dosyasıdır. Yardımcı Parçalar MP4, normal MP4 yapısına sahiptir.

Yardımcı Parçalar MP4'teki öğelerin düzenini gösteren çizgi şeması

Yardımcı Parçalar MP4, tüm yardımcı parçaların örnek meta verilerini içerir. Tüm yardımcı parça örnek yükü, Yardımcı Parçalar MP4'ün mdat kutusunda veya dış MP4'ün mdat kutusunda (her ikisi de değil) depolanmalıdır.

İlk durumda auxiliary.tracks.interleaved 0 olarak ayarlanmalıdır (Aşağıdaki "Statik Meta Veriler" bölümüne bakın) ve axte.moov kutusunda yer alan örnek ofsetleri, Yardımcı Parçalar MP4 dosyasının başlangıcına göredir. Bu, Yardımcı Parçalar MP4 dosyasını bağımsız hale getirir. Yani Yardımcı Parçalar MP4, dış MP4'ye referans vermeden tek başına okunabilir.

İkinci durumda, auxiliary.tracks.interleaved 1 olarak ayarlanmalıdır (Aşağıdaki "Statik Meta Veriler" bölümüne bakın) ve axte.moov kutusunda yer alan örnek ofsetleri dosyanın başlangıcına göredir. Ayrıca birincil ve yardımcı parçaların örnek yükü birbirine yerleştirilebilir. Bu durumda axte.mdat kutusu bulunmayabilir.

Statik meta veriler

Yardımcı Parçalar MP4, aşağıdaki meta verileri içeren mdta işleyicisine sahip bir moov.meta kutusu içerir. Meta veriler herhangi bir sırada görünebilir.

Meta veri anahtarı

Tür göstergesi

Değer

(İsteğe bağlı) auxiliary.tracks.interleaved

75 (8 bitlik işaretsiz tam sayı)

0: Sanalda kesikli olmayan ve axte.mdat kutusunda bulunan örnekleri gösterir.

1: Sanayların birincil video kanalının mdat kutusunda ardışık olarak yerleştirildiğini belirtir

Diğer tüm değerler ayrılmıştır ve kullanılmamalıdır.

Bu meta verilerin olmaması, varsayılan değerin 0 olduğunu gösterir.

auxiliary.tracks.map

0 (ayrılmış)

İkili biçim:

  • 1 bayt sürümü = 1
  • 1 bayt parça sayısı = n
  • Aşağıdaki gruptaki n bayt izleme türü
    • 0 = Keskin video
    • 1 = Derinlikli video (doğrusal)
    • 2 = Derinlikli video (ters)
    • 3 = Zamanlanmış derinlik meta verileri
    • 4 = Saydam video
    • 5-127 = Gelecekte kullanılmak üzere ayrılmıştır
    • 128-255 = Özel kanal türleri

auxiliary.tracks.map içindeki parça türlerinin sırası, Yardımcı Parçalar MP4'ün yükündeki sıralarını gösterir.

Yardımcı parça türleri

Yardımcı Kanallar MP4, düzenleme için yararlı olan aşağıdaki video ve meta veri kanallarını içerebilir.

Keskin video kanalı

Düzenlenebilir efektler uygulanmamış, tam çözünürlükte bir video. Video kanalı, birincil video kanalından farklı bir çözünürlükte depolanabilir. Keskin video parçası, yaygın olarak kullanılan herhangi bir video codec'i kullanabilir ve standart veya yüksek dinamik aralıkta olabilir.

Derinlik video kanalı

Derinlik video kanalı, standart bir gri tonlamalı video olarak kodlanmış derinlik bilgilerini sağlar. Bu, derinlik için özel kod çözme veya kodlama desteği olmayan cihazlarda derinlik kanallarının kodunun çözülmesine ve kodlanmasına olanak tanır. Derinlik video kanalı, H.264/AVC, H.265/HEVC, VP9, AV1 veya diğer yaygın video codec'lerini kullanabilir. Derinlik video kanalı 8 bit veya 10 bit olabilir ve doğrusal ya da ters kodlanmış olabilir (Dinamik derinlik 1.0 spesifikasyonuna bakın).

Zamanlı derinlik meta veri parçası

Zamanlanmış derinlik meta veri parçası, derinliği hesaplamak için normalleştirme değerleri ve bokeh efekti için bulanıklık yarıçapını hesaplamak üzere kullanılabilecek bir odak tablosu içerir.

Örnek MIME türü

application/x-depth-metadata

Örnek söz dizimi

İkili biçim (tüm int'ler küçük endian):

  • Yakın mesafe (16 bit kayan nokta)
  • Uzak mesafe (16 bit kayan nokta)
  • Odak tablosu girişi sayısı (16 bit int)
  • Odak tablosu girişi
    • Giriş mesafesi (16 bit kayan nokta)
    • Giriş yarıçapı (16 bit kayan nokta)
Şeffaf video kanalı

İlgili karedeki her piksel için alfa değerini (şeffaflık) depolayan bir video parçası. Minimum değer tamamen şeffaf, maksimum değer ise tamamen opaklığı gösterir. Aradaki değerler, doğrusal bir ölçekte farklı saydamlık seviyelerini temsil eder ve birleştirmede, önceden çarpılmamış renk değerleriyle normal birleştirme modu kullanılır. Derinlik video parçasına benzer şekilde bu parça da standart gri tonlamalı video olarak kodlanmalıdır.

Kullanım alanı örnekleri

  • Orijinal (bulanıklaştırma öncesi) keskin renk verileri ve derinlik haritası için yardımcı video parçaları ve her karedeki odak noktasını yansıtan derinlik meta verilerini içeren zamanlanmış yardımcı bir meta veri parçasıyla oynatılabilir, oluşturulmuş bir bokeh videosunu birincil parçada depolama. Yardımcı parçalar daha sonra, odaktaki konuyu değiştirmek ve yüksek kaliteli bir bokeh video parçası oluşturmak için bir video düzenleyicide kullanılabilir.

  • Önceden oluşturulmuş yarı saydam bir "etiket" videosunu (ör. beyaz arka plan üzerinde animasyonlu bir emoji videosu) birincil video kanalında, alfa haritası içeren yardımcı bir video kanalıyla birlikte depolama. Yardımcı parça, daha sonra bir kompozitör tarafından yardımcı parçadaki saydamlık bilgilerini kullanarak çıkartmayı arka planla harmanlamak için kullanılabilir.