Format pliku MP4-AT umożliwia przechowywanie ścieżek pomocniczych, które są przydatne do edycji i kompozycji po nagraniu (np. ścieżka wideo mapy głębi) obok danych mediów do odtwarzania w strukturze ISOBMFF/MP4.
Celem tego formatu jest przechowywanie ścieżek pomocniczych w taki sposób, aby były one ukryte przed klientami, którzy nie stosują tej specyfikacji. Zapobiega to interpretowaniu ścieżek pomocniczych jako danych do odtworzenia.
Zależności
W przypadku tej specyfikacji obowiązują następujące dokumenty:
- Słowa kluczowe do stosowania w dokumentach RFC w celu wskazania poziomów wymagań
- ISO/IEC 14496-12:2022 ISO Box media file format (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Kodowanie obiektów audiowizualnych Część 10: Zaawansowane kodowanie wideo (AVC)
- ISO/IEC 23008-2:2023 Kodowanie i dostarczanie multimediów o wysokiej wydajności w środowiskach heterogenicznych Część 2: Kodowanie wideo o wysokiej wydajności (HEVC)
- Kodeki wideo VP9 (VP9)
- Specyfikacja procesu kodowania i dekodowania bitów AV1 (AV1)
- Specyfikacja dynamicznej głębi 1.0
Wprowadzenie
Użycie słów „MUST” (musi), „MUST NOT” (nie musi), „REQUIRED” (wymagane), „SHOULD” (zalecane), „SHOULD NOT” (nie zalecane), „RECOMMENDED” (zalecane) i „OPTIONAL” (opcjonalne) jest zgodne ze standardem IETF określonym w RFC2119.
Format pliku MP4-AT
Format pliku MP4-AT składa się z torów głównych i pomocniczych, które umożliwiają wykonywanie różnych operacji edycji. Główne ścieżki (np. ścieżka wideo, do której zastosowano efekt bokeh) są zapisywane w pliku MP4 jak zwykle, a ścieżki pomocnicze – w pliku MP4 ze ścieżkami pomocniczymi.
Plik MP4 z ścieżkami pomocniczymi to kolejny kontener zgodny z MP4, który jest umieszczony w polu axte
(rozszerzenie ścieżek pomocniczych). Pole axte
powinno być ostatnim polem w pliku, co ułatwia usuwanie danych pomocniczych przez obcięcie pliku.
Ten format jest zgodny wstecz: odtwarzacze, które nie obsługują reszty tego formatu, będą odczytywać i odtwarzać główne ścieżki wideo podczas wczytywania pliku.
Plik zawiera pole moov.meta
z elementem mdta
, który zawiera te metadane: Metadane mogą się wyświetlać w dowolnej kolejności.
Klucz metadanych |
Wskaźnik typu |
Wartość |
|
78 (64-bitowa liczba całkowita bez znaku w systemie big endian) |
Odsunięcie pliku (w bajtach) do pola |
|
78 (64-bitowa liczba całkowita bez znaku w systemie big endian) |
Długość (w bajtach) pola |
Pole dodatkowego rozszerzenia ścieżek (axte)
Składnia
Pole axte
jest opisane za pomocą semantyki pola zdefiniowanej w ISO/IEC 14496-12:2022: 4.2
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
gdzie pole danych zawiera ścieżki pomocnicze w formacie MP4.
Ładunek
Treść axte
to plik MP4 z ścieżkami pomocniczymi.
Plik MP4 z ścieżkami pomocniczymi ma standardową strukturę MP4.
Plik MP4 z ścieżkami pomocniczymi zawiera przykładowe metadane wszystkich ścieżek pomocniczych.
Wszystkie ładunki próbek ścieżek pomocniczych muszą być przechowywane w polu mdat
ścieżek pomocniczych w formacie MP4 lub w polu mdat
zewnętrznego pliku MP4 (ale nie w obu).
W pierwszym przypadku parametr auxiliary.tracks.interleaved
musi być ustawiony na 0 (patrz „Metadane statyczne” poniżej), a odchyłki próbki w polu axte.moov
są względne względem początku ścieżek pomocniczych MP4. Dzięki temu plik MP4 z ścieżkami pomocniczymi jest samodzielny, co oznacza, że można go odczytać bez odniesienia do zewnętrznego pliku MP4.
W tym drugim przypadku wartość auxiliary.tracks.interleaved
musi być ustawiona na 1 (patrz „Statyczne metadane” poniżej), a przesunięcia próbek w polu axte.moov
są względne do początku pliku, a ładunki próbek ścieżek głównej i pomocniczej mogą być przeplatane.
W tym przypadku pole axte.mdat
może być puste.
Metadane statyczne
Plik Auxiliary Tracks MP4 zawiera pole moov.meta
z elementem mdta
, który zawiera te metadane: Metadane mogą się wyświetlać w dowolnej kolejności.
Klucz metadanych |
Wskaźnik typu |
Wartość |
(Opcjonalnie) |
75 (8-bitowa liczba bez znaku) |
0: oznacza, że próbki nie są przeplatane i znajdują się w polu 1: wskazuje, że próbki są przeplatane w polu Wszystkie pozostałe wartości są zarezerwowane i nie można ich używać. Brak tych metadanych oznacza wartość domyślną 0. |
|
0 (zarezerwowane) |
Format binarny:
|
Kolejność typów ścieżek w auxiliary.tracks.map
wskazuje ich kolejność w danych ścieżek pomocniczych w pliku MP4.
Typy ścieżek pomocniczych
Plik MP4 z ścieżkami pomocniczymi może zawierać ścieżki wideo i metadane, które są przydatne podczas edycji.
Ścieżka wideo z ostrą
Film w pełnej rozdzielczości bez efektów, które można edytować. Ścieżka wideo może być zapisana w innej rozdzielczości niż główna ścieżka wideo. Twardy ścieżka wideo może używać dowolnego popularnego kodeka wideo i może być w standardowym lub wysokim zakresie dynamicznym.
Ścieżka wideo z efektem głębi
Ścieżka wideo z głębią zawiera informacje o głębi zakodowane jako standardowy film w skali szarości. Umożliwia to dekodowanie i kodowanie ścieżek z informacjami o głębi na urządzeniach, które nie mają specjalnego wsparcia dla dekodowania lub kodowania głębi. Ścieżka wideo z głębią dynamiczną może używać H.264/AVC, H.265/HEVC, VP9, AV1 lub dowolnego innego popularnego kodeka wideo. Ścieżka wideo z głębią dynamiczną może być 8- lub 10-bitowa i kodowana liniowo lub odwrotnie (patrz specyfikacja dynamicznej głębi 1.0).
Ścieżka metadanych z głębokością czasowa
Ścieżka metadanych z głębią w czasie zawiera wartości normalizujące do obliczenia głębi oraz tabelę ogniskowej, której można użyć do obliczenia promienia rozmycia w celu uzyskania efektu bokeh.
Przykładowy typ MIME |
|
Przykładowa składnia |
Format binarny (wszystkie liczby całkowite w formacie little-endian):
|
Przejrzysty pasek wideo
Ścieżka wideo przechowująca wartość alfa (przezroczystość) dla każdego piksela w odpowiedniej klatce. Minimalna wartość oznacza pełną przezroczystość, a maksymalna – pełną nieprzezroczystość. Wartości pośrednie odpowiadają różnym poziomom przezroczystości na skali liniowej, a kompozycja wykorzystuje normalny tryb mieszania z wartościami kolorów nieprzemnożonymi wstępnie. Podobnie jak ścieżka wideo z głębią, ta ścieżka powinna być zakodowana jako standardowy film w odcieniach szarości.
Przykładowe przypadki użycia
przechowywanie renderowanego, odtwarzalnego filmu z efektem bokeh na ścieżce głównej, z dodatkowymi ścieżkami wideo dla oryginalnych (przed rozmyciem) ostrych danych kolorów i mapy głębi oraz dodatkową ścieżką metadanych z czasem z metadanymi głębi, które odzwierciedlają punkt ostrości w każdym klatce. Ścieżek pomocniczych można następnie używać w edytorze wideo, aby modyfikować obiekt w centrum uwagi i ponownie renderować ścieżkę wideo z efektem bokeh wysokiej jakości.
przechowywanie wyrenderowanego półprzezroczystego filmu z naklejką, np. animowanego emoji na białym tle na głównej ścieżce wideo, z dodatkową ścieżką wideo zawierającą mapę alfa; Kompozytor może użyć ścieżki pomocniczej, aby zmieszać naklejkę z tłem, korzystając z informacji o przezroczystości z ścieżki pomocniczej.