Das Dateiformat MP4-AT unterstützt das Speichern von Hilfstracks, die für die Bearbeitung und Komposition nach der Aufnahme nützlich sind (z. B. ein Videotrack mit Tiefenkarte), zusammen mit abspielbaren Mediendaten in einer ISOBMFF/MP4-Struktur.
Ziel des Formats ist es, Hilfstracks so zu speichern, dass sie für Clients, die diese Spezifikation nicht implementieren, ausgeblendet werden. So wird verhindert, dass Clients Hilfstracks als abspielbare Daten interpretieren.
Abhängigkeiten
Die folgenden normativen Verweise gelten für diese Spezifikation:
- Keywords zur Angabe von Anforderungsstufen in RFCs
- ISO/IEC 14496-12:2022 ISO Box-Mediendateiformat (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Codierung audiovisueller Objekte – Teil 10: AVC (Advanced Video Coding)
- ISO/IEC 23008-2:2023 High Efficiency Coding and Media Delivery in Heterogeneous Environments Part 2: High Efficiency Video Coding (HEVC)
- VP9-Videocodecs (VP9)
- AV1 Bitstream & Decoding Process Specification (AV1)
- Spezifikation für dynamische Tiefenschärfe 1.0
Einführung
Die Verwendung von „MUSS“, „DARF NICHT“, „ERFORDERLICH“, „SOLLTE“, „SOLLTE NICHT“, „EMPFOHLEN“, „KÖNNEN“ und „OPTIONAL“ erfolgt gemäß dem IETF-Standard, der in RFC2119 definiert ist.
MP4-AT-Dateiformat
Das Dateiformat MP4-AT besteht aus primären und Hilfsspuren, die verschiedene Bearbeitungsvorgänge ermöglichen. Die primären Tracks (z. B. ein Videotrack, auf den ein Bokeh-Effekt angewendet wurde) werden wie gewohnt in die MP4-Datei geschrieben, während die Hilfstracks in eine MP4-Datei mit Hilfstracks geschrieben werden.
Auxiliary Tracks MP4 ist ein weiterer MP4-kompatibler Container und wird im Feld axte
(Auxiliary Tracks Extension) platziert. Das Feld axte
sollte das letzte Feld in der Datei sein. So können Sie Hilfsdaten ganz einfach entfernen, indem Sie die Datei kürzen.
Dieses Format ist abwärtskompatibel: Bei Wiedergabegeräten, die den Rest dieses Formats nicht unterstützen, werden beim Laden der Datei die primären Videotracks gelesen und abgespielt.
Die Datei enthält ein moov.meta
-Feld mit einem mdta
-Handler, der die folgenden Metadaten enthält. Die Metadaten können in beliebiger Reihenfolge angezeigt werden.
Metadatenschlüssel |
Typ-Indikator |
Wert |
|
78 (vorzeichenlose 64‑Bit-Big-Endian-Ganzzahl) |
Der Dateioffset (in Byte) des Felds |
|
78 (vorzeichenlose 64‑Bit-Big-Endian-Ganzzahl) |
Die Länge (in Byte) des |
Feld für die Erweiterung von Hilfsgleisen (axte)
Syntax
Das Feld axte
wird anhand der Semantik des Felds beschrieben, das in ISO/IEC 14496-12:2022: 4.2 definiert ist.
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
wobei das Datenfeld die MP4-Datei mit den Zusatztracks enthält.
Nutzlast
Die Nutzlast des Felds axte
ist eine MP4-Datei mit Hilfstracks.
Die MP4-Datei mit den Zusatztracks hat die übliche MP4-Struktur.
Die MP4-Datei mit den Zusatztracks enthält Beispielmetadaten für alle Zusatztracks.
Alle Nutzlasten von Hilfstracks müssen entweder im Feld mdat
der MP4-Datei für Hilfstracks oder im Feld mdat
der äußeren MP4-Datei gespeichert werden (aber nicht in beiden).
Im ersten Fall muss auxiliary.tracks.interleaved
auf 0 gesetzt werden (siehe unten unter „Statische Metadaten“). Die Sample-Offset-Werte im Feld axte.moov
beziehen sich auf den Beginn der MP4-Datei mit den Hilfstracks. Dadurch ist die MP4-Datei mit den Zusatztracks in sich geschlossen. Das bedeutet, dass sie ohne Verweise auf die äußere MP4-Datei gelesen werden kann.
Im letzteren Fall muss auxiliary.tracks.interleaved
auf 1 gesetzt sein (siehe unten unter „Statische Metadaten“). Die Sample-Offset-Werte im Feld axte.moov
beziehen sich auf den Anfang der Datei und die Sample-Nutzlast der primären und der Hilfstracks kann interleaved sein.
In diesem Fall kann das Feld axte.mdat
fehlen.
Statische Metadaten
Die MP4-Datei mit den Zusatztracks enthält ein moov.meta
-Feld mit einem mdta
-Handler, der die folgenden Metadaten enthält. Die Metadaten können in beliebiger Reihenfolge angezeigt werden.
Metadatenschlüssel |
Typ-Indikator |
Wert |
Optional: |
75 (vorzeichenlose 8-Bit-Ganzzahl) |
0: Gibt an, dass die Samples nicht interleaved sind und sich im Feld 1: Gibt an, dass Samples im Feld Alle anderen Werte sind reserviert und dürfen nicht verwendet werden. Fehlen diese Metadaten, gilt der Standardwert 0. |
|
0 (reserviert) |
Binäres Format:
|
Die Reihenfolge der Titeltypen in auxiliary.tracks.map
gibt ihre Reihenfolge in der Nutzlast der MP4-Datei mit Hilfstiteln an.
Zusatz-Track-Typen
Die MP4-Datei mit den zusätzlichen Tracks kann die folgenden Video- und Metadatentracks enthalten, die für die Bearbeitung nützlich sind.
Scharfer Videotrack
Ein Video in voller Auflösung ohne anwendbare Bearbeitungseffekte. Der Videotrack kann in einer anderen Auflösung als der primäre Videotrack gespeichert werden. Für den scharfen Videotrack kann jeder gängige Videocodec verwendet werden. Er kann im Standard- oder im High Dynamic Range-Format vorliegen.
Tiefenvideotrack
Der Tiefe-Videotrack enthält die Tiefeninformationen, die als standardmäßiges Graustufenvideo codiert sind. So können Tiefentracks auf Geräten decodiert und codiert werden, die keine spezielle Dekodierungs- oder Codierungsunterstützung für die Tiefe haben. Für den Tiefe-Videotrack können H.264/AVC, H.265/HEVC, VP9, AV1 oder ein anderer gängiger Videocodec verwendet werden. Der Tiefe-Videotrack kann 8- oder 10-Bit sein und linear oder invers codiert werden (siehe Dynamic Depth 1.0-Spezifikation).
Track mit Zeitcodierten Tiefenmetadaten
Der Zeitcodierte Metadaten-Track für die Tiefenschärfe enthält Normalisierungswerte zur Berechnung der Tiefenschärfe und eine Brennebenentabelle, mit der der Unschärferadius für einen Bokeh-Effekt berechnet werden kann.
Beispiel für einen MIME-Typ |
|
Beispielsyntax |
Binärformat (alle Ganzzahlen im Little-Endian-Format):
|
Transparenter Videotrack
Ein Videotrack, der den Alphawert (Transparenz) für jedes Pixel im entsprechenden Frame speichert. Ein Mindestwert steht für vollständig transparent, während der Maximalwert für volle Deckkraft steht. Werte dazwischen stehen für unterschiedliche Transparenzgrade auf einer linearen Skala. Beim Compositing wird der normale Mischmodus mit nicht vormultiplizierten Farbwerten verwendet. Ähnlich wie der Tiefe-Videotrack sollte dieser Track auch als Standard-Graustufenvideo codiert werden.
Beispielanwendungsfälle
Ein abspielbares gerendertes Bokeh-Video in einem primären Track speichern, mit zusätzlichen Videotracks für die scharfen Farbdaten des Originals (vor dem Weichzeichnen) und eine Tiefenkarte sowie einen zusätzlichen getakteten Metadatentrack mit Tiefenmetadaten, die den Fokuspunkt in jedem Frame widerspiegeln. Die Hilfstracks können dann in einem Video-Editor verwendet werden, um das Motiv im Fokus zu ändern und einen hochwertigen Bokeh-Videotrack neu zu rendern.
Speichern eines vorab gerenderten, durchsichtigen „Sticker“-Videos, z. B. eines animierten Emoji-Videos auf weißem Hintergrund in einem primären Videotrack mit einem Hilfsvideotrack, der eine Alpha-Map enthält. Der Hilfstrack kann dann von einem Compositor verwendet werden, um den Sticker mithilfe von Transluzenzinformationen aus dem Hilfstrack in einen Hintergrund einzufügen.