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:
- RFC'lerde şart düzeylerini belirtmek için kullanılacak anahtar kelimeler
- ISO/IEC 14496-12:2022 ISO Box medya dosyası biçimi (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 İşitsel ve görsel nesnelerin kodlanması Bölüm 10: Gelişmiş video kodlaması (AVC)
- ISO/IEC 23008-2:2023 Heterojen ortamlarda yüksek verimli kodlama ve medya yayınlama Bölüm 2: Yüksek verimli video kodlama (HEVC)
- VP9 Video Codec'leri (VP9)
- AV1 Bitstream ve Kod Çözme Süreci Spesifikasyonu (AV1)
- Dinamik derinlik 1.0 spesifikasyonu
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.
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 |
|
78 (büyük endian 64 bit işaretsiz tam sayı) |
|
|
78 (büyük endian 64 bit işaretsiz tam sayı) |
|
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, 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ı) |
75 (8 bitlik işaretsiz tam sayı) |
0: Sanalda kesikli olmayan ve 1: Sanayların birincil video kanalının 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. |
|
0 (ayrılmış) |
İkili biçim:
|
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ü |
|
Örnek söz dizimi |
İkili biçim (tüm int'ler küçük endian):
|
Ş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.