Format File MP4 dengan Ekstensi Trek Tambahan (MP4-AT) 0.9

Format file MP4-AT mendukung penyimpanan trek tambahan yang berguna untuk pengeditan dan komposisi pasca-perekaman (misalnya, trek video peta kedalaman) bersama data media yang dapat diputar dalam struktur ISOBMFF/MP4.

Tujuan format ini adalah untuk menyimpan trek tambahan sehingga trek tersebut disembunyikan dari klien yang tidak menerapkan spesifikasi ini. Hal ini mencegah klien menafsirkan trek tambahan sebagai data yang dapat diputar.

Dependensi

Berikut adalah referensi normatif untuk spesifikasi ini:

Pengantar

Penggunaan "HARUS", "TIDAK BOLEH", "WAJIB", "HARUS", "TIDAK BOLEH", "DISARANKAN", "MUNGKIN", dan "OPSIONAL" sesuai dengan standar IETF yang ditentukan dalam RFC2119.

Format file MP4-AT

Format file MP4-AT terdiri dari trek utama dan trek tambahan untuk memungkinkan berbagai operasi pengeditan. Trek utama (misalnya, trek video yang telah menerapkan efek bokeh) ditulis dalam file MP4 seperti biasa, sedangkan trek tambahan ditulis dalam Auxiliary Tracks MP4. Auxiliary Tracks MP4 adalah penampung lain yang mematuhi MP4, dan ditempatkan di dalam kotak axte(Auxiliary Tracks Extension). Kotak axte direkomendasikan untuk menjadi kotak terakhir dalam file, sehingga memudahkan penghapusan data tambahan dengan memotong file.

Format ini kompatibel dengan versi sebelumnya: pemutar yang tidak mendukung format lainnya akan membaca dan memutar trek video utama saat memuat file.

Diagram garis yang menunjukkan pengaturan elemen dalam file MP4-AT

File ini memiliki kotak moov.meta dengan pengendali mdta yang berisi metadata berikut. Metadata dapat muncul dalam urutan apa pun.

Kunci metadata

Indikator jenis

Nilai

auxiliary.tracks.offset

78 (bilangan bulat 64-bit big endian tanpa tanda)

Offset file (dalam byte) dari kotak axte

auxiliary.tracks.length

78 (bilangan bulat 64-bit big endian tanpa tanda)

Panjang (dalam byte) kotak axte

Kotak ekstensi trek tambahan (axte)

Sintaksis

Kotak axte dijelaskan menggunakan semantik kotak yang ditentukan dalam ISO/IEC 14496-12:2022: 4.2

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

dengan kolom data berisi Auxiliary Tracks MP4.

Payload

Payload kotak axte adalah MP4 Trek Tambahan. MP4 Trek Tambahan memiliki struktur MP4 biasa.

Diagram garis yang menunjukkan pengaturan elemen dalam MP4 Trek Tambahan

Auxiliary Tracks MP4 berisi contoh metadata untuk semua trek tambahan. Semua payload sampel trek tambahan harus disimpan di kotak mdat Auxiliary Tracks MP4, atau di kotak mdat MP4 luar (tetapi tidak keduanya).

Dalam kasus pertama, auxiliary.tracks.interleaved harus disetel ke 0 (lihat "Metadata Statis" di bawah) dan offset sampel di kotak axte.moov bersifat relatif terhadap awal MP4 Trek Tambahan. Hal ini membuat Auxiliary Tracks MP4 mandiri, yang berarti Auxiliary Tracks MP4 dapat dibaca secara mandiri tanpa referensi ke MP4 luar.

Dalam kasus terakhir, auxiliary.tracks.interleaved harus disetel ke 1 (lihat "Metadata Statis" di bawah) dan offset sampel di kotak axte.moov bersifat relatif terhadap awal file dan payload sampel dari trek utama dan tambahan dapat diselang-seling. Kotak axte.mdat dapat tidak ada dalam kasus ini.

Metadata statis

Auxiliary Tracks MP4 berisi kotak moov.meta dengan pengendali mdta yang berisi metadata berikut. Metadata dapat muncul dalam urutan apa pun.

Kunci metadata

Indikator jenis

Nilai

(Opsional) auxiliary.tracks.interleaved

75 (Bilangan Bulat Tanpa Tanda 8-bit)

0: Menunjukkan sampel tidak diselang-seling dan berada di kotak axte.mdat

1: Menunjukkan sampel yang diselang-seling di kotak mdat trek video utama

Semua nilai lainnya dicadangkan dan tidak boleh digunakan.

Tidak adanya metadata ini menunjukkan nilai default 0.

auxiliary.tracks.map

0 (disediakan)

Format biner:

  • Versi 1 byte = 1
  • Jumlah trek 1 byte = n
  • jenis jalur n byte dari kumpulan berikut
    • 0 = Video tajam
    • 1 = Video kedalaman (linear)
    • 2 = Video kedalaman (invers)
    • 3 = Metadata kedalaman berjangka waktu
    • 4 = Video transparan
    • 5-127 = Direservasi untuk penggunaan mendatang
    • 128-255 = Jenis jalur kustom

Urutan jenis trek di auxiliary.tracks.map menunjukkan urutan dalam payload Auxiliary Tracks MP4.

Jenis jalur tambahan

MP4 Trek Tambahan dapat berisi trek video dan metadata berikut yang berguna untuk pengeditan.

Trek video tajam

Video dalam resolusi penuh tanpa efek yang dapat diedit. Trek video dapat disimpan dengan resolusi yang berbeda dari trek video utama. Jalur video tajam dapat menggunakan codec video umum, dan dapat dalam rentang dinamis standar atau tinggi.

Trek video kedalaman

Jalur video kedalaman memberikan informasi kedalaman yang dienkode sebagai video hitam putih standar. Hal ini untuk memungkinkan dekode dan enkode trek kedalaman di perangkat yang tidak memiliki dukungan dekode atau enkode khusus untuk kedalaman. Jalur video kedalaman dapat menggunakan H.264/AVC, H.265/HEVC, VP9, AV1, atau codec video umum lainnya. Jalur video kedalaman dapat berupa 8-bit atau 10-bit dan dienkode secara linear atau terbalik (lihat Spesifikasi kedalaman dinamis 1.0).

Jalur metadata kedalaman berjangka waktu

Jalur metadata kedalaman berwaktu berisi nilai normalisasi untuk menghitung kedalaman, dan tabel fokus yang dapat digunakan untuk menghitung radius blur untuk efek bokeh.

Contoh jenis MIME

application/x-depth-metadata

Contoh sintaksis

Format biner (semua int little endian):

  • Jarak dekat (float 16-bit)
  • Jarak jauh (float 16-bit)
  • Jumlah entri tabel fokus (int 16-bit)
  • Entri tabel fokus
    • Jarak entri (float 16-bit)
    • Radius entri (float 16-bit)
Trek video transparan

Trek video yang menyimpan nilai alfa (transparansi) untuk setiap piksel dalam bingkai yang sesuai. Nilai minimum menunjukkan transparansi penuh, sedangkan nilai maksimum menunjukkan opasitas penuh. Nilai di antaranya mewakili tingkat translusensi yang bervariasi pada skala linear, dan komposisi menggunakan mode penggabungan normal dengan nilai warna yang tidak dilipatgandakan sebelumnya. Serupa dengan jalur video kedalaman, jalur ini juga harus dienkode sebagai video hitam putih standar.

Contoh kasus penggunaan

  • Menyimpan video bokeh yang dirender dan dapat diputar di trek utama, dengan trek video tambahan untuk data warna tajam asli (sebelum pemburaman) dan peta kedalaman, serta trek metadata berwaktu tambahan dengan metadata kedalaman yang mencerminkan titik fokus di setiap frame. Trek tambahan kemudian dapat digunakan di editor video untuk mengubah subjek fokus dan merender ulang trek video bokeh berkualitas tinggi.

  • Menyimpan video 'stiker' transparan yang telah dirender sebelumnya, misalnya, video emoji animasi dengan latar belakang putih di trek video utama, dengan trek video tambahan yang berisi peta alfa. Jalur tambahan kemudian dapat digunakan oleh kompositor untuk menggabungkan stiker dengan latar belakang menggunakan informasi transparansi dari jalur tambahan.