Codecs in üblichen Medientypen

Auf einer grundlegenden Ebene können Sie den Typ einer Mediendatei mithilfe eines einfachen MIME-Typs angeben, wie video/mp4 oder audio/mpeg. Viele Medientypen – insbesondere solche, die Videospuren unterstützen – können jedoch von der Möglichkeit profitieren, das Datenformat innerhalb dieser Dateien präziser zu beschreiben. Beispielsweise sagt die Beschreibung eines Videos in einer MPEG-4 Datei mit dem MIME-Typ video/mp4 nichts darüber aus, welches Format das tatsächliche Medium innerhalb davon einnimmt.

Aus diesem Grund kann der codecs Parameter zum MIME-Typ hinzugefügt werden, der Medieninhalte beschreibt. Damit können containerspezifische Informationen bereitgestellt werden. Diese Informationen können Dinge wie das Profil des Videocodecs, den Typ für die Audiospuren und so weiter umfassen.

Dieser Leitfaden untersucht kurz die Syntax des Medientyps codecs Parameter und wie er mit der MIME-Typzeichenfolge verwendet wird, um Details über den Inhalt von Audio- oder Videomedien bereitzustellen, die über die Angabe des Container-Typs hinausgehen.

MIME-Typen für Containerformate

Der MIME-Typ für ein Containerformat wird ausgedrückt, indem der Medientyp (audio, video, etc.) gefolgt von einem Schrägstrich (/) und dann das zur Speicherung des Mediums verwendete Format angegeben wird:

audio/mpeg

Eine Audiodatei, die den MPEG Dateityp verwendet, wie beispielsweise eine MP3.

video/ogg

Eine Videodatei, die den Ogg Dateityp verwendet.

video/mp4

Eine Videodatei, die den MPEG-4 Dateityp verwendet.

video/quicktime

Eine Videodatei im QuickTime Format von Apple. Wie an anderer Stelle erwähnt, wurde dieses Format früher häufig im Web verwendet, jedoch nicht mehr, da dafür ein Plugin erforderlich war.

Allerdings sind alle diese MIME-Typen vage. Alle diese Dateitypen unterstützen eine Vielzahl von Codecs, und diese Codecs können eine beliebige Anzahl von Profilen, Ebenen und anderen Konfigurationsfaktoren aufweisen. Aus diesem Grund möchten Sie möglicherweise den codecs Parameter zusammen mit dem Medientyp einbeziehen.

Grundlegende Syntax

Sie können den codecs Parameter zum Medientyp hinzufügen. Um dies zu tun, fügen Sie ein Semikolon (;) gefolgt von codecs= und dann die Zeichenfolge, die das Format des Inhalts der Datei beschreibt, hinzu. Einige Medientypen erlauben es Ihnen, nur die Namen der zu verwendenden Codecs anzugeben, während andere es Ihnen ermöglichen, auch verschiedene Einschränkungen für diese Codecs anzugeben. Sie können mehrere Codecs angeben, indem Sie sie durch Kommas trennen.

audio/ogg; codecs=vorbis

Eine Ogg Datei, die einen Vorbis Audiotrack enthält.

video/webm; codecs="vp8, vorbis"

Eine WebM Datei, die VP8 Video und/oder Vorbis Audio enthält.

video/mp4; codecs="avc1.4d002a"

Eine MPEG-4 Datei, die AVC (H.264) Video, Main Profile, Level 4.2 enthält.

Wie bei jedem MIME-Typ-Parameter muss codecs in codecs* (beachten Sie das Stern-Zeichen *) geändert werden, wenn einer der Codec-Eigenschaften Sonderzeichen verwendet, die gemäß RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions prozentkodiert werden müssen. Sie können die JavaScript-Funktion encodeURI() verwenden, um die Parameterliste zu kodieren; und ähnlich können Sie decodeURI() verwenden, um eine vorher codierte Parameterliste zu dekodieren.

Hinweis: Wenn der codecs Parameter verwendet wird, muss die angegebene Liste der Codecs jeden Codec enthalten, der für den Inhalt der Datei verwendet wird. Die Liste kann auch Codecs enthalten, die in der Datei nicht vorhanden sind.

Codec-Optionen nach Container

Die folgenden Container unterstützen erweiterte Codec-Optionen in ihren codecs Parametern:

Mehrere der oben genannten Links führen in denselben Abschnitt; das liegt daran, dass diese Medientypen alle auf dem ISO Base Media File Format (ISO BMFF) basieren und daher die gleiche Syntax teilen.

AV1

Die Syntax des codecs Parameters für AV1 ist in der AV1 Codec ISO Media File Format Binding Spezifikation, Abschnitt 5: Codecs Parameter String, definiert.

av01.P.LLT.DD[.M.CCC.cp.tc.mc.F]

Hinweis: Chromium-basierte Browser akzeptieren jede Teilmenge der optionalen Parameter (anstatt alle oder keine, wie von der Spezifikation gefordert).

Die Komponenten dieser Codec-Parameter-Zeichenfolge werden im Folgenden in der Tabelle detaillierter beschrieben. Jede Komponente hat eine feste Länge. Wenn der Wert kürzer ist, muss er mit führenden Nullen aufgefüllt werden.

AV1 Codec-Parameter-String-Komponenten
Komponente Details
P

Die einstellige Profilnummer:

AV1-Profilnummern
Profilnummer Beschreibung
0 "Main" Profil; unterstützt YUV 4:2:0 oder monochrome Datenströme mit einer Bit-Tiefe von 8 oder 10 Bits pro Komponente.
1 "High" Profil fügt Unterstützung für 4:4:4 Farbabtastung hinzu.
2 "Professional" Profil fügt Unterstützung für 4:2:2 Farbabtastung und 12-Bit-Farbe pro Komponente hinzu.
LL Die zweistellige Level-Nummer, die in das X.Y-Format-Level-Format umgewandelt wird, wobei X = 2 + (LL >> 2) und Y = LL & 3. Siehe Anhang A, Abschnitt 3 in der AV1-Spezifikation für Details.
T Der einstellige Tiers-Indikator. Für den Main-Tier (seq_tier gleich 0) ist dieser Buchstabe M. Für den High-Tier (seq_tier ist 1) ist dieser Buchstabe H. Der High-Tier ist nur für Level 4.0 und höher verfügbar.
DD Die zweistellige Bit-Tiefe der Komponente. Dieser Wert muss einer von 8, 10 oder 12 sein; welche Werte gültig sind, variiert je nach Profil und anderen Eigenschaften.
M Die einstellige monochromatische Flagge; wenn dies 0 ist, enthält das Video die U- und V-Ebenen zusätzlich zur Y-Ebene. Andernfalls befinden sich die Videodaten vollständig in der Y-Ebene und sind daher monochromatisch. Siehe YUV für Details zur Funktionsweise des YUV-Farbsystems. Der Standardwert ist 0 (nicht monochromatisch).
CCC

CCC gibt die Farbunterabtastung als drei Ziffern an. Die erste Ziffer ist subsampling_x, die zweite ist subsampling_y. Wenn beide 1 sind, ist die dritte der Wert von chroma_sample_position; andernfalls ist die dritte Ziffer immer 0. Dies kann in Verbindung mit der Komponente M zur Bestimmung des Formats der Farbunterabtastung verwendet werden:

Bestimmung des Formats der Farbunterabtastung
subsampling_x subsampling_y Monochromatische Flagge Format der Farbunterabtastung
0 0 0 YUV 4:4:4
1 0 0 YUV 4:2:2
1 1 0 YUV 4:2:0
1 1 1 YUV 4:0:0 (Monochromatisch)

Die dritte Ziffer in CCC gibt die chromatische Abtastposition an, wobei ein Wert von 0 anzeigt, dass die Position unbekannt ist und beim Dekodieren separat bereitgestellt werden muss; ein Wert von 1 zeigt an, dass die Abtastposition horizontal mit der Luma-Abtastung (0, 0) kollokiert ist; und ein Wert von 2 zeigt an, dass die Abtastposition mit der Luma (0, 0) kollokiert ist.

Der Standardwert ist 110 (4:2:0 Farbabtastung).

cp Der zweistellige color_primaries Wert zeigt das Farbsystem an, das von den Medien verwendet wird. Zum Beispiel ist BT.2020/BT.2100 Farbe, wie sie für HDR-Video verwendet wird, 09. Die Informationen hierzu – und für jede der verbleibenden Komponenten – sind im Farbkonfigurationssemantiken-Abschnitt der AV1-Spezifikation zu finden. Der Standardwert ist 01 (ITU-R BT.709).
tc Der zweistellige transfer_characteristics Wert. Dieser Wert definiert die Funktion, die verwendet wird, um das Gamma (in der technischen Sprache als "opto-elektronische Transferfunktion" bezeichnet) von der Quelle auf die Anzeige abzubilden. Zum Beispiel ist 10-Bit BT.2020 14. Der Standardwert ist 01 (ITU-R BT.709).
mc Die zweistellige matrix_coefficients Konstante wählt die Matrixkoeffizienten aus, die verwendet werden, um die roten, blauen und grünen Kanäle in Luma- und Chromasignale umzuwandeln. Zum Beispiel werden die standardmäßigen Koeffizienten, die für BT.709 verwendet werden, mit dem Wert 01 angegeben. Der Standardwert ist 01 (ITU-R BT.709).
F Eine einstellige Flagge, die angibt, ob die Farbe den gesamten Wertebereich verwenden darf (1) oder auf die Werte beschränkt werden sollte, die als rechtlich für die angegebene Farbkonfiguration angesehen werden (d.h. die Studio-Swing-Darstellung). Die Standardeinstellung ist 0 (Verwendung der Studio-Swing-Darstellung).

Alle Felder ab M (monochromatische Flagge) sind optional; Sie können an jedem Punkt aufhören, Felder einzuschließen (aber keine Felder willkürlich auslassen). Die Standardwerte sind in der obigen Tabelle enthalten. Einige Beispiel-AV1-Codec-Strings:

av01.2.15M.10.0.100.09.16.09.0

AV1 Professional Profil, Level 5.3, Main Tier, 10 Bits pro Farbkomponente, 4:2:2 Farbabtastung mit ITU-R BT.2100 Farbprimären, Transfercharakteristika und YCbCr Farbmatrix. Die Studio-Swing-Darstellung ist angegeben.

av01.0.15M.10

AV1 Main Profil, Level 5.3, Main Tier, 10 Bits pro Farbkomponente. Die verbleibenden Eigenschaften werden aus den Standardwerten übernommen: 4:2:0 Farbabtastung, BT.709 Farbprimarien, Transfercharakteristiken und Matrixkoeffizienten. Studio-Swing-Darstellung.

VP9

ISO Base Media File Format Syntax

Die Syntax des codecs Parameters für VP9 ist in der VP Codec ISO Media File Format Binding Spezifikation, im Abschnitt Codecs Parameter String, definiert.

In diesem Format beginnt der Wert des codecs Parameters mit einem vierstelligen Code, der den verwendeten Codec im Container identifiziert, der dann von einer Reihe von periodische (.) getrennten, zweistelligen Werten gefolgt wird.

cccc.PP.LL.DD
cccc.PP.LL.DD.CC.cp.tc.mc.FF

Die ersten vier Komponenten sind erforderlich; alles ab CC (Farben-Unterabtastung) ist optional, aber alles oder nichts. Jede dieser Komponenten ist in der folgenden Tabelle beschrieben. Nach der Tabelle folgen einige Beispiele.

WebM Codecs Parameter Komponenten
Komponente Details
cccc

Ein vierstelliger Code, der anzeigt, welcher der möglichen Codecs beschrieben wird. Mögliche Werte sind:

Vierstellige Codes für von WebM unterstützte Codecs
Vierstelliger Code Codec
vp08 VP8
vp09 VP9
vp10 VP10
PP

Die zweistellige Profilnummer, mit führenden Nullen aufgefüllt, falls erforderlich, um genau zwei Ziffern zu haben.

WebM Profilnummern
Profil Beschreibung
00 Nur 4:2:0 (Farbunterabtastung sowohl horizontal als auch vertikal). Erlaubt nur 8 Bits pro Farbkomponente.
01 Alle Farbunterabtastungsformate sind erlaubt. Erlaubt nur 8 Bits pro Farbkomponente.
02 Nur 4:2:0 (Farbunterabtastung sowohl horizontal als auch vertikal). Unterstützt 8, 10 oder 12 Bits pro Farbkomponentenwert.
03 Alle Farbunterabtastungsformate sind erlaubt. Unterstützt 8, 10 oder 12 Bits pro Farbkomponentenwert.
LL Die zweistellige Level-Nummer. Die Level-Nummer ist eine Festpunktnotation, wobei die erste Ziffer die Einerziffer ist und die zweite Ziffer die Zehntel repräsentiert. Zum Beispiel ist Level 3 30 und Level 6.1 ist 61.
DD Die Bit-Tiefe der Luma- und Farbkomponentenwerte; zulässige Werte sind 8, 10 und 12.
CC

Ein zweistelliger Wert, der angibt, welches Farbunterabtastungsformat verwendet werden soll. Die folgende Tabelle listet die zulässigen Werte auf; siehe Farbunterabtastung in unserem "Digitale Video-Konzepte"-Leitfaden für zusätzliche Informationen zu diesem Thema und anderen.

WebM Farbunterabtastungs-Identifikatoren
Wert Farbunterabtastungsformat
00 4:2:0 mit den Farbeproben, die zwischen den Pixeln ortsbezogen sind
01 4:2:0 Farbunterabtastung mit den Proben kollokiert mit Luma (0, 0)
02 4:2:2 Farbunterabtastung (4 von jeder 4 horizontalen Pixeln Luminanz werden verwendet)
03 4:4:4 Farbunterabtastung (die Luminanz und Chrominanz jedes Pixels werden beide beibehalten)
04 Reserviert
cp

Eine zweistellige Ganzzahl, die angibt, welche der Farbprimärfarben aus Abschnitt 8.1 der ISO/IEC 23001-8:2016 Norm verwendet wird. Diese Komponente und jede Komponente danach ist optional.

Die möglichen Werte der Farbprimärfarbenkomponente sind:

ISO/IEC Farbprimärfarben-Identifikatoren
Wert Details
00 Reserviert für zukünftige Verwendung durch ITU oder ISO/IEC
01 BT.709, sRGB, sYCC. BT.709 ist der Standard für hochauflösendes (HD) Fernsehen; sRGB ist der am häufigsten verwendete Farbraum für Computermonitore. Das Broadcast-BT.709 verwendet eine 8-Bit-Farbtiefe, wobei das legale Spektrum von 16 (schwarz) bis 235 (weiß) reicht.
02 Die Bildmerkmale sind unbekannt oder sollen von der Anwendung bestimmt werden
03 Reserviert für zukünftige Verwendung durch ITU oder ISO/IEC
04 BT.470 System M, NTSC (Standard Definition Television in den Vereinigten Staaten)
05 BT.470 System B, G; BT.601; BT.1358 625; BT.1700 625 PAL und 625 SECAM
06 BT.601 525; BT.1358 525 oder 625; BT.1700 NTSC; SMPTE 170M. Funktionell identisch mit 7.
70 SMPTE 240M (historisch). Funktionell identisch mit 6.
08 Generischer Film
09 BT.2020; BT.2100. Verwendet für ultrahochauflösendes (4K) High Dynamic Range (HDR) Video, diese haben einen sehr großen Farbraum und unterstützen 10-Bit- und 12-Bit-Farbkomponententiefen.
10 SMPTE ST 428 (D-Cinema Distribution Master: Bildmerkmale). Definiert die unkomprimierten Bildmerkmale für DCDM.
11 SMPTE RP 431 (D-Cinema-Qualität: Referenzprojektor und Umgebung). Beschreibt den Referenzprojektor und die Umgebungsbedingungen, die ein konsistentes Filmdarstellungserlebnis bieten.
12 SMPTE EG 432 (Digitale Quellenverarbeitung: Farbverarbeitung für D-Cinema). Technische Richtlinie, die Empfehlungen zur Farbsignal-Dekodierung für digitale Filme gibt.
1321 Reserviert für zukünftige Verwendung durch ITU-T oder ISO/IEC
22 EBU Tech 3213-E
23255 Reserviert für zukünftige Verwendung durch ITU-T oder ISO/IEC
tc Eine zweistellige Ganzzahl, die die transferCharacteristics für das Video angibt. Dieser Wert stammt aus Abschnitt 8.2 von ISO/IEC 23001-8:2016, und gibt die Transfermerkmale an, die beim Anpassen der dekodierten Farbe an das Ausgabegerät verwendet werden sollen.
mc Der zweistellige Wert für die matrixCoefficients Eigenschaft. Dieser Wert stammt aus der Tabelle in Abschnitt 8.3 der ISO/IEC 23001-8:2016 Spezifikation. Dieser Wert gibt an, welcher Satz von Koeffizienten beim Mapping von den nativen roten, blauen und grünen Primärfarben zu den Luma- und Chromasignalen verwendet werden soll. Diese Koeffizienten werden wiederum mit den Gleichungen verwendet, die im selben Abschnitt zu finden sind.
FF Gibt an, ob das Schwarzlevel und der Farbbereich jeder Farbkomponente auf den legalen Bereich beschränkt werden sollen. Für 8-Bit Farbmuster reicht der legale Bereich von 16–235. Ein Wert von 00 zeigt an, dass diese Einschränkungen erzwungen werden sollten, während ein Wert von 01 den vollen Bereich der möglichen Werte für jede Komponente erlaubt, selbst wenn die resultierende Farbe außerhalb der Grenzen für das Farbsystem liegt.

Beispiele

video/webm;codecs="vp09.02.10.10.01.09.16.09.01,opus"

VP9-Video, Profil 2, Level 1.0, mit 10-Bit-YUV-Inhalt unter Verwendung von 4:2:0 Farbabtastung, BT.2020 Primärfarben, ST 2084 EOTF (HDR SMPTE), BT.2020 nicht-konstanter Luminanzfarbmatrix und vollständiger Bereich Chroma- und Luma-Kodierung. Der Ton ist im Opus-Format.

ISO Base Media File Format: MP4, QuickTime und 3GP

Alle Medientypen, die auf dem ISO Base Media File Format (ISO BMFF) basieren, teilen die gleiche Syntax für den codecs Parameter. Diese Medientypen umfassen MPEG-4 (und tatsächlich das QuickTime Dateiformat, auf dem MPEG-4 basiert) sowie 3GP. Sowohl Video- als auch Audiospuren können mit dem codecs Parameter in den folgenden MIME-Typen beschrieben werden:

MIME-Typ Beschreibung
audio/3gpp 3GP-Audio (RFC 3839: MIME Type Registrations for 3rd generation Partnership Project (3GP) Multimedia files)
video/3gpp 3GP-Video (RFC 3839: MIME Type Registrations for 3rd generation Partnership Project (3GP) Multimedia files)
audio/3gp2 3GP2-Audio (RFC 4393: MIME Type Registrations for 3GPP2 Multimedia files)
video/3gp2 3GP2-Video (RFC 4393: MIME Type Registrations for 3GPP2 Multimedia files)
audio/mp4 MP4-Audio (RFC 4337: MIME Type Registration for MPEG-4)
video/mp4 MP4-Video (RFC 4337: MIME Type Registration for MPEG-4)
application/mp4 Nicht-audiovisuelles Medium, das in MPEG-4 gekapselt ist

Jeder durch den codecs Parameter beschriebene Codec kann entweder als Name des Containers (3gp, mp4, quicktime usw.) oder als Containername plus zusätzliche Parameter zur Spezifikation des Codecs und seiner Konfiguration angegeben werden. Jeder Eintrag in der Codec-Liste kann eine Anzahl von Komponenten enthalten, die durch Punkte (.) getrennt sind.

Die Syntax für den Wert von codecs variiert je nach Codec; jedoch beginnt sie immer mit dem vierstelligen Identifikator des Codecs, einem Punkttrennzeichen (.), gefolgt vom Objekt-Typ-Indikationswert (OTI) für das spezifische Datenformat. Für die meisten Codecs ist der OTI eine zweistellige Hexadezimalzahl; jedoch sind es sechs hexadezimale Ziffern für AVC (H.264).

Daher sieht die Syntax für jeden der unterstützten Codecs so aus:

cccc[.pp]* (Generisches ISO BMFF)

Wo cccc der vierstellige ID-Code für den Codec ist und pp der Ort ist, an dem null oder mehr zweistellig kodierte Eigenschaftswerte eingehen.

mp4a.oo[.A] (MPEG-4 Audio)

Wo oo der Objekt-Typ-Indikationswert ist, der den Inhalt der Medien präziser beschreibt und A der einstellige Audio OTI ist. Die möglichen Werte für den OTI finden Sie auf der MP4 Registration Authority Website auf der Object Types Seite. Zum Beispiel ist Opus-Audio in einer MP4-Datei mp4a.ad. Für weitere Details, siehe MPEG-4 Audio.

mp4v.oo[.V] (MPEG-4 Video)

Hier ist oo erneut der OTI, der den Inhalt präziser beschreibt, während V der einstellige Video OTI ist.

avc1[.PPCCLL] (AVC Video)

PPCCLL sind sechs hexadezimale Ziffern, die die Profilnummer (PP), die Einschränkungsset-Flags (CC) und die Ebene (LL) spezifizieren. Siehe AVC Profile für die möglichen Werte von PP.

Die Einschränkungsset-Flags-Byte besteht aus einstelligen Boolean-Flags, wobei das bedeutendste Bit als Flag 0 (oder constraint_set0_flag in einigen Ressourcen) bezeichnet wird, und jedes aufeinanderfolgende Bit um eins höher nummeriert wird. Derzeit werden nur die Flags 0 bis 2 verwendet; die anderen fünf Bits müssen null sein. Die Bedeutungen der Flags hängen vom verwendeten Profil ab.

Die Ebene ist eine Festpunktzahl, sodass ein Wert von 14 (Dezimal 20) Level 2.0 bedeutet, während ein Wert von 3D (Dezimal 61) Level 6.1 bedeutet. Im Allgemeinen gilt: Je höher die Level-Nummer, desto mehr Bandbreite wird der Stream verwenden, und desto höher sind die maximal unterstützten Videodimensionen.

AVC Profile

Die folgenden sind die AVC Profile und ihre Profilnummern zur Verwendung im codecs Parameter, ebenso wie der Wert, der für die Einschränkungskomponente, CC, anzugeben ist.

Profil Nummer (Hex) Einschränkungsbyte
Constrained Baseline Profile (CBP) CBP ist vor allem eine Lösung für Szenarien, in denen Ressourcen eingeschränkt sind oder der Ressourcenverbrauch kontrolliert werden muss, um die Wahrscheinlichkeit schlechter Medienleistung zu minimieren. 42 40
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Verlustschutz und Wiederherstellungsfähigkeiten. Dies wird nicht so häufig verwendet wie vor der Einführung von CBP. Alle CBP-Streams gelten auch als BP-Streams. 42 00
Extended Profile (XP) Entwickelt für das Netzwerkstreaming von Video, mit hoher Kompressionsfähigkeit und weiteren Verbesserungen der Datenrobustheit und Streamumschaltung. 58 00
Main Profile (MP) Das Profil, das für Standard-Definitionen digitales Fernsehen verwendet wird, das im MPEG-4 Format ausgestrahlt wird. Nicht für hochauflösende Fernsehaussendungen verwendet. Die Bedeutung dieses Profils hat seit der Einführung des High Profile in 2004 verflogen, das für HDTV-Nutzung hinzugefügt wurde. 4D 00
High Profile (HiP) Derzeit ist HiP das Hauptprofil, das für HD-Video in Broadcasts und auf Disc-basierte Videos verwendet wird; es wird sowohl für HD-TV-Broadcasts als auch für Blu-Ray-Video verwendet. 64 00
Progressive High Profile (PHiP) Im Wesentlichen High Profile ohne Unterstützung für Feldcodierung. 64 08
Constrained High Profile PHiP, jedoch ohne Unterstützung für bidirektionale prädiktive Slices ("B-Slices"). 64 0C
High 10 Profile (Hi10P) High Profile, jedoch mit Unterstützung für bis zu 10 Bits pro Farbkomponente. 6E 00
High 4:2:2 Profile (Hi422P) Erweitert Hi10P um Unterstützung für 4:2:2 Farbabtastung zusammen mit bis zu 10 Bits pro Farbkomponente. 7A 00
High 4:4:4 Predictive Profile (Hi444PP) Zusätzlich zu den in Hi422P enthaltenen Fähigkeiten fügt Hi444PP Unterstützung für 4:4:4 Farbabtastung (in dem keine Farbinformationen verworfen werden) hinzu. Beinhaltet auch Unterstützung für bis zu 14 Bits pro Farbmuster und effizientes verlustfreies Regionenkodierung. Die Option, jeden Frame als drei separate Farbebenen zu codieren (das heißt, die Daten für jede Farbe werden gespeichert, als ob es ein einzelner monochromer Frame wäre). F4 00
High 10 Intra Profile High 10 beschränkt auf die ausschließliche Verwendung von Intragets. Hauptsächlich für professionelle Anwendungen verwendet. 6E 10
High 4:2:2 Intra Profile Das Hi422-Profil mit ausschließlicher Verwendung von Intraframes. 7A 10
High 4:4:4 Intra Profile Das High 4:4:4-Profil, das auf die Verwendung von Intra-Frames beschränkt ist. F4 10
CAVLC 4:4:4 Intra Profile Das High 4:4:4-Profil, das auf die ausschließliche Verwendung von Intra-Frames und auf die ausschließliche Verwendung der CAVLC-Kodierung (Context Adaptative Variable Length Coding) beschränkt ist. 44 00
Scalable Baseline Profile Vorgesehen für den Einsatz bei Videokonferenzen sowie bei Überwachungs- und mobilen Anwendungen, basiert das SVC Baseline-Profil auf dem AVC Constrained Baseline-Profil. Der Basisschicht innerhalb des Streams wird auf einem hohen Qualitätsniveau bereitgestellt, mit einer Anzahl von sekundären Substreams, die alternative Formen des gleichen Videos für verschiedene beschränkte Umgebungen bieten. Dazu können jede Kombination aus reduzierter Auflösung, reduzierter Bildrate oder erhöhter Komprimierung gehören. 53 00
Scalable Constrained Baseline Profile Hauptsächlich verwendet für Echtzeitkommunikationsanwendungen. Noch nicht von WebRTC unterstützt, aber eine Erweiterung zur WebRTC-API um SVC zu erlauben ist in Entwicklung. 53 04
Scalable High Profile Hauptsächlich für Broadcast- und Streaming-Anwendungen gedacht. Die Basisschicht (oder die qualitativ hochwertigste Schicht) muss das AVC High Profile konformieren. 56 00
Scalable Constrained High Profile Ein Subset des Scalable High Profiles, das hauptsächlich für Echtzeitkommunikation konzipiert ist. 56 04
Scalable High Intra Profile Hauptsächlich nützlich nur für Produktionsanwendungen, unterstützt dieses Profil nur die ausschließliche Verwendung von Intra-Frames. 56 20
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video mit zwei Darstellungen der Szene (linkes Auge und rechtes Auge). Ansonsten bietet es die gleichen Funktionen wie das High Profile. 80 00
Multiview High Profile Unterstützt zwei oder mehr Ansichten mit sowohl temporaler als auch MVC-Zwischenansichtsvorhersage. Unterstützt nicht Feldbilder oder makroblock-adaptive Frame-Field-Codierung. 76 00
Multiview Depth High Profile Basiert auf dem High Profile, an das der Hauptsubstream angepasst werden muss. Die verbleibenden Substreams müssen dem Stereo High Profile entsprechen. 8A 00

MPEG-4 Audio

Wenn der Wert eines Eintrags in der codecs Liste mit mp4a beginnt, sollte die Syntax des Wertes so aussehen:

mp4a.oo[.A]

Hierbei ist oo die zweistellige hexadezimale Objekt-Typ-Indikation, die die verwendete Codec-Klasse für die Medien angibt. Die OTIs werden von der MP4 Registration Authority vergeben, die eine Liste der möglichen OTI-Werte unterhält. Ein spezieller Wert ist 40; dies weist darauf hin, dass das Medium MPEG-4-Audio (ISO/IEC 14496 Teil 3) ist. Um noch spezifischer zu sein, wird eine dritte Komponente – der Audio-Objekttyp – für OTI 40 hinzugefügt, um den Typ auf einen bestimmten Subtyp von MPEG-4 einzugrenzen.

Der Audio-Objekttyp wird als eine ein- oder zweistellige dezimal Zahl angegeben (im Gegensatz zu den meisten anderen Werten im codecs Parameter, die hexadezimal sind). Beispielsweise hat MPEG-4's AAC-LC eine Audio-Objekttypennummer von 2, sodass der vollständige codecs Wert, der AAC-LC repräsentiert, mp4a.40.2 ist.

Daher kann ER AAC LC, dessen Audio-Objekttyp 17 ist, mit dem vollständigen codecs Wert mp4a.40.17 dargestellt werden. Einstellige Werte können entweder als eine Ziffer (was die beste Wahl ist, da es am breitesten kompatibel sein wird) oder mit führender Null auf zwei Ziffern gepolstert, wie mp4a.40.02, angegeben werden.

Hinweis: Die Spezifikation verlangte ursprünglich, dass die Audio-Objekttypennummer in der dritten Komponente nur eine Dezimalziffer ist. Jedoch wurden im Laufe der Zeit durch Änderungen an der Spezifikation der Bereich dieser Werte weit über eine Dezimalziffer hinaus erweitert, sodass die dritte Komponente jetzt entweder ein- oder zweistellig sein kann. Das Auffüllen von Werten unter 10 mit einer führenden 0 ist optional. Ältere Implementationen von MPEG-4-Codecs unterstützen möglicherweise keine zweistelligen Werte; die Verwendung einer einzigen Stelle wird jedoch die Kompatibilität maximieren.

Die Audio-Objekttypen sind in ISO/IEC 14496-3 Unterabschnitt 1 Abschnitt 1.5.1 definiert. Die nachstehende Tabelle bietet eine grundlegende Liste der Audio-Objekttypen und im Fall der häufigeren Objekttypen eine Liste der Profile, die sie unterstützen, aber Sie sollten sich die Spezifikation ansehen, wenn Sie mehr über das Innenleben eines bestimmten MPEG-4-Audiotyps wissen möchten.

MPEG-4 Audio-Objekttypen
ID Audio-Objekttyp Profilunterstützung
0 NULL
1 AAC Main Haupt
2 AAC LC (Low Complexity) Haupt, Skalierbar, HQ, LD v2, AAC, HE-AAC, HE-AAC v2
3 AAC SSR (Scalable Sampling Rate) Haupt
4 AAC LTP (Long Term Prediction) Haupt, Skalierbar, HQ
5 SBR (Spectral Band Replication) HE-AAC, HE-AAC v2
6 AAC Skalierbar Haupt, Skalierbar, HQ
7 TwinVQ (Codierung für ultraniedrige Bitraten) Haupt, Skalierbar
8 CELP (Code-Excited Linear Prediction) Haupt, Skalierbar, Sprache, HQ, LD
9 HVXC (Harmonic Vector Excitation Coding) Haupt, Skalierbar, Sprache, LD
1011 Reserviert
12 TTSI (Text to Speech Interface) Haupt, Skalierbar, Sprache, Synthetisch, LD
13 Haupt Synthetisch Haupt, Synthetisch
14 Wavetabellen-Synthese
15 General-MIDI
16 Algorithmische Synthese und Audioeffekte
17 ER AAC LC (Error Resilient AAC Low-Complexity) HQ, Mobile Internetworking
18 Reserviert
19 ER AAC LTP (Error Resilient AAC Long Term Prediction) HQ
20 ER AAC Skalierbar (Error Resilient AAC Scalable) Mobile Internetworking
21 ER TwinVQ (Error Resilient TwinVQ) Mobile Internetworking
22 ER BSAC (Error Resilient Bit-Sliced Arithmetic Coding) Mobile Internetworking
23 ER AAC LD (Error Resilient AAC Low-Delay; verwendet für bidirektionale Kommunikation) LD, Mobile Internetworking
24 ER CELP (Error Resilient Code-Excited Linear Prediction) HQ, LD
25 ER HVXC (Error Resilient Harmonic Vector Excitation Coding) LD
26 ER HILN (Error Resilient Harmonic and Individual Line plus Noise)
27 ER Parametrisch (Error Resilient Parametric)
28 SSC (Sinusoidal Coding)
29 PS (Parametrisches Stereo) HE-AAC v2
30 MPEG Surround
31 Escape
32 MPEG-1 Layer-1
33 MPEG-1 Layer-2 (MP2)
34 MPEG-1 Layer-3 (MP3)
35 DST (Direct Stream Transfer)
36 ALS (Audio Lossless)
37 SLS (Scalable Lossless)
38 SLS Non-core (Scalable Lossless Non-core)
39 ER AAC ELD (Error Resilient AAC Enhanced Low Delay)
40 SMR Simple (Symbolic Music Representation Simple)
41 SMR Main (Symbolic Music Representation Main)
42 Reserviert
43

SAOC (Spatial Audio Object Coding)

Definiert in ISO/IEC 14496-3:2009/Amd.2:2010(E).

44

LD MPEG Surround (Low Delay MPEG Surround)

Definiert in ISO/IEC 14496-3:2009/Amd.2:2010(E).

45 und höher Reserviert

WebM

Die Grundform eines WebM codecs Parameters besteht darin, einen oder mehrere der vier WebM-Codecs nach Namen aufzulisten, getrennt durch Kommas. Die folgende Tabelle zeigt einige Beispiele:

MIME-Typ Beschreibung
video/webm;codecs="vp8" Ein WebM Video mit VP8 Video darin; kein Audio ist spezifiziert.
video/webm;codecs="vp9" Ein WebM Video mit VP9 Video darin.
audio/webm;codecs="vorbis" Vorbis Audio in einem WebM Container.
audio/webm;codecs="opus" Opus Audio in einem WebM Container.
video/webm;codecs="vp8,vorbis" Ein WebM Container mit VP8 Video und Vorbis Audio.
video/webm;codecs="vp9,opus" Ein WebM Container mit VP9 Video und Opus Audio.

Die Zeichenfolgen vp8.0 und vp9.0 funktionieren ebenfalls, werden jedoch nicht empfohlen.

Verwendung des Codecs Parameters

Sie können den codecs Parameter in einigen Situationen verwenden. Zum einen können Sie ihn mit dem <source> Element verwenden, wenn Sie ein <audio> oder <video> Element erstellen, um eine Gruppe von Optionen für den Browser festzulegen, die beim Auswählen des Medienformats verwendet werden, das im Element für den Benutzer präsentiert werden soll.

Sie können den codecs Parameter auch verwenden, wenn Sie einen MIME-Medientyp an die MediaSource.isTypeSupported() Methode angeben; diese Methode gibt einen Boolean zurück, der angibt, ob die Medien auf dem aktuellen Gerät wahrscheinlich funktionieren werden.

Siehe auch