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:
- Kata kunci untuk digunakan dalam RFC guna Menunjukkan Tingkat Persyaratan
- 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)
- Codec Video VP9 (VP9)
- Spesifikasi Proses Decoding & Bitstream AV1 (AV1)
- Spesifikasi kedalaman dinamis 1.0
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.
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 |
|
78 (bilangan bulat 64-bit big endian tanpa tanda) |
Offset file (dalam byte) dari kotak |
|
78 (bilangan bulat 64-bit big endian tanpa tanda) |
Panjang (dalam byte) kotak |
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.
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) |
75 (Bilangan Bulat Tanpa Tanda 8-bit) |
0: Menunjukkan sampel tidak diselang-seling dan berada di kotak 1: Menunjukkan sampel yang diselang-seling di kotak Semua nilai lainnya dicadangkan dan tidak boleh digunakan. Tidak adanya metadata ini menunjukkan nilai default 0. |
|
0 (disediakan) |
Format biner:
|
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 |
|
Contoh sintaksis |
Format biner (semua int little endian):
|
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.