Codecs in allgemeinen Medientypen

Auf einer grundlegenden Ebene können Sie den Typ einer Mediendatei mit einem einfachen MIME-Typ angeben, wie video/mp4 oder audio/mpeg. Viele Medientypen – insbesondere solche, die Videospuren unterstützen – profitieren jedoch von der Möglichkeit, das Format der darin enthaltenen Daten präziser zu beschreiben. Zum Beispiel sagt die Beschreibung eines Videos in einer MPEG-4-Datei mit dem MIME-Typ video/mp4 nichts darüber aus, in welchem Format die tatsächlichen Medien vorliegen.

Aus diesem Grund kann der codecs-Parameter zum MIME-Typ hinzugefügt werden, um Medieninhalte zu beschreiben. Damit können container-spezifische Informationen bereitgestellt werden. Diese Informationen können Dinge wie das Profil des Videocodecs, den für die Audiospuren verwendeten Typ usw. beinhalten.

Dieser Leitfaden untersucht kurz die Syntax des codecs-Parameters für Medientypen und wie dieser mit der MIME-Typzeichenfolge verwendet wird, um Details über die Inhalte von Audio- oder Videomedien über den Hinweis auf den Containertyp hinaus bereitzustellen.

Containerformat-MIME-Typen

Der MIME-Typ für ein Containerformat wird angegeben, indem der Medientyp (audio, video, etc.), dann ein Schrägstrich (/) und schließlich das zur Speicherung des Mediums verwendete Format angegeben werden:

audio/mpeg

Eine Audiodatei, die den MPEG Dateityp verwendet, wie zum Beispiel ein 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 einst häufig im Web verwendet, ist es heute jedoch nicht mehr, da zur Verwendung ein Plugin erforderlich war.

Jeder dieser MIME-Typen ist jedoch ungenau. Alle diese Dateitypen unterstützen eine Vielzahl von Codecs, und diese Codecs können beliebige Profile, Stufen und andere Konfigurationsparameter 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. Dazu fügen Sie ein Semikolon (;) gefolgt von codecs= und dann die Zeichenfolge hinzu, die das Format des Inhalts der Datei beschreibt. Einige Medientypen lassen Sie nur die Namen der zu verwendenden Codecs angeben, während andere es auch ermöglichen, verschiedene Einschränkungen für diese Codecs festzulegen. Sie können mehrere Codecs durch Kommata trennen.

audio/ogg; codecs=vorbis

Eine Ogg-Datei mit einer Vorbis-Audiospur.

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 mit AVC (H.264) Video, Hauptprofil, Stufe 4.2.

Wie bei jedem MIME-Typ-Parameter muss codecs in codecs* (beachten Sie das Sternchen, *) geändert werden, wenn eine der Eigenschaften des Codecs Sonderzeichen verwendet, die gemäß RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions Prozent-kodiert werden müssen. Sie können die JavaScript-encodeURI()-Funktion verwenden, um die Parameterliste zu kodieren; ähnlich können Sie decodeURI() verwenden, um eine zuvor kodierte Parameterliste zu dekodieren.

Hinweis: Wenn der codecs-Parameter verwendet wird, muss die angegebene Codec-Liste jeden für den Dateiinhalt verwendeten Codec enthalten. 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:

Einige der obigen Links führen zur gleichen Sektion; das liegt daran, dass diese Medientypen alle auf dem ISO Base Media File Format (ISO BMFF) basieren und daher die gleiche Syntax haben.

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 jeden Teil der optionalen Parameter (statt alle oder keine, wie in der Spezifikation vorgeschrieben).

Die Bestandteile dieser Codec-Parameter-Zeichenfolge werden in der untenstehenden Tabelle ausführlicher beschrieben. Jeder Bestandteil hat eine feste Anzahl von Zeichen; 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 Bitstreams mit einer Farbtiefe von 8 oder 10 Bits pro Komponente.
1 "High" Profil fügt Unterstützung für 4:4:4-Chroma-Subsampling hinzu.
2 "Professional" Profil fügt Unterstützung für 4:2:2-Chroma-Subsampling und 12-Bit pro Komponente Farbe 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 ist. Siehe Anhang A, Abschnitt 3 in der AV1-Spezifikation für Details.
T Der einstellige Schicht-Indikator. Für die Hauptschicht (seq_tier entspricht 0) ist dieses Zeichen der Buchstabe M. Für die hohe Schicht (seq_tier ist 1) ist dieses Zeichen der Buchstabe H. Die hohe Schicht ist nur für Level 4.0 und höher verfügbar.
DD Die zweistellige Komponententiefe. Dieser Wert muss 8, 10 oder 12 sein; welche Werte gültig sind, variiert je nach Profil und anderen Eigenschaften.
M Der einstellige Monochrom-Flag; wenn dies 0 ist, enthält das Video die U- und V-Ebenen zusätzlich zur Y-Ebene. Andernfalls sind die Videodaten vollständig in der Y-Ebene und sind daher monochrom. Siehe YUV, um Details zum YUV-Farbsystem zu erfahren. Der Standardwert ist 0 (nicht monochrom).
CCC

CCC gibt das Chroma-Subsampling als drei Ziffern an. Die erste Ziffer ist subsampling_x, die zweite ist subsampling_y. Wenn beide identisch mit 1 sind, ist die dritte der Wert von chroma_sample_position; andernfalls ist die dritte Ziffer immer 0. Damit, kombiniert mit der M Komponente, kann das Chroma-Subsampling-Format konstruiert werden:

Bestimmung des Chroma-Subsampling-Formats
subsampling_x subsampling_y Monochrom-Flag Chroma-Subsampling-Format
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 (Monochrom)

Die dritte Ziffer in CCC gibt die Chroma-Beispielposition an, wobei ein Wert von 0 angibt, dass die Position unbekannt ist und während der Dekodierung separat bereitgestellt werden muss; ein Wert von 1 gibt an, dass die Beispielposition horizontal mit dem (0, 0) Luma-Beispiel kollokiert ist; und ein Wert von 2 gibt an, dass die Beispielposition mit (0, 0) Luma kollokiert ist.

Der Standardwert ist 110 (4:2:0 Chroma-Subsampling).

cp Der zweistellige color_primaries-Wert gibt das vom Medium verwendete Farbsystem an. Zum Beispiel, BT.2020/BT.2100 Farbe, wie für HDR-Video verwendet, ist 09. Die Informationen dazu – und für jede der verbleibenden Komponenten – sind im Farbkonfigurations-Semantikabschnitt 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 die Gamma (in der Fachsprache als "opto-elektronische Transferfunktion" bezeichnet) von der Quelle auf das Anzeigegerät 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 Rot-, Blau- und Grünkanäle in Luma- und Chroma-Signale zu konvertieren. Zum Beispiel werden die Standardkoeffizienten, die für BT.709 verwendet werden, mit dem Wert 01 angegeben. Der Standardwert ist 01 (ITU-R BT.709).
F Eine einstellige Markierung, die angibt, ob die Farbe den vollen Bereich möglicher Werte verwenden soll (1), oder ob sie auf die Werte beschränkt werden soll, die für die angegebene Farbkonfiguration als legal angesehen werden (das heißt, die Studio-Swing-Darstellung). Der Standardwert ist 0 (verwenden Sie die Studio-Swing-Darstellung).

Alle Felder ab M (Monochrom-Flag) sind optional; Sie können das Einfügen von Feldern an jedem Punkt beenden (aber Sie können nicht willkürlich Felder auslassen). Die Standardwerte sind in der Tabelle oben enthalten. Einige Beispiele für AV1-Codec-Zeichenfolgen:

av01.2.15M.10.0.100.09.16.09.0

AV1 Professional Profile, Level 5.3, Hauptschicht, 10 Bits pro Farbkomponente, 4:2:2-Chroma-Subsampling mit ITU-R BT.2100 Farbbahnen, Transfercharakteristika und YCbCr Farbmatrix. Die Studio-Swing-Darstellung wird angezeigt.

av01.0.15M.10

AV1 Hauptprofil, Level 5.3, Hauptschicht, 10 Bits pro Farbkomponente. Die restlichen Eigenschaften werden aus den Standardwerten übernommen: 4:2:0-Chroma-Subsampling, BT.709 Farbbahnen, Transfercharakteristika 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 im Container verwendeten Codec identifiziert, gefolgt von einer Serie von Punkt (.) getrennten, zweistelligen Werten.

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

Die ersten vier Komponenten sind erforderlich; alles ab CC (Chroma-Subsampling) ist optional, jedoch alles oder nichts. Jede dieser Komponenten wird in der folgenden Tabelle beschrieben. Im Anschluss an die Tabelle sind einige Beispiele angegeben.

WebM Codecs-Parameter-Komponenten
Komponente Details
cccc

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

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

Die zweistellige Profilnummer, bei Bedarf mit führenden Nullen auf genau zwei Ziffern aufgefüllt.

WebM Profilnummern
Profil Beschreibung
00 Nur 4:2:0 (Chroma sowohl horizontal als auch vertikal sub-sampled). Ermöglicht nur 8 Bit pro Farbkomponente.
01 Alle Chroma-Subsampling-Formate sind erlaubt. Ermöglicht nur 8 Bit pro Farbkomponente.
02 Nur 4:2:0 (Chroma sowohl horizontal als auch vertikal sub-sampled). Unterstützt 8, 10 oder 12 Bit pro Farbprobe.
03 Alle Chroma-Subsampling-Formate sind erlaubt. Unterstützt 8, 10 oder 12 Bit pro Farbprobe.
LL Die zweistellige Levelsnummer. Die Levels-Nummer ist eine Gleitkommazahl, wobei die erste Ziffer die Einerstelle ist und die zweite Ziffer die Zehntelstelle darstellt. 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 Chroma-Subsampling-Format verwendet werden soll. Die folgende Tabelle listet die zulässigen Werte auf; siehe Chroma-Subsampling in unserem "Digital Video Concepts"-Leitfaden für zusätzliche Informationen zu diesem Thema und anderen.

WebM Chroma-Subsampling-Identifikatoren
Wert Chroma-Subsampling-Format
00 4:2:0 mit den Chromaproben zwischen den Pixeln angesiedelt
01 4:2:0-Chroma-Subsampling mit Proben, die mit Luma (0, 0) kollokiert sind
02 4:2:2-Chroma-Subsampling (4 von jeweils 4 horizontalen Pixeln Luminanz werden verwendet)
03 4:4:4-Chroma-Subsampling (Jedes Pixel's Luminanz und Chrominanz werden beide beibehalten)
04 Reserviert
cp

Ein zweistelliger Ganzzahlwert, der angibt, welche der Farbprimärfarbsystemwerte aus Abschnitt 8.1 des ISO/IEC 23001-8:2016-Standards verwendet werden. Diese Komponente und jede Komponente danach sind optional.

Die möglichen Werte der primären Farbenkomponente sind:

ISO/IEC Farbprimäridentifikatoren
Wert Details
00 Für zukünftige ITU- oder ISO/IEC-Verwendung reserviert
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. Broadcast BT.709 verwendet eine Farbtiefe von 8 Bit mit dem legalen Bereich von 16 (schwarz) bis 235 (weiß).
02 Bildmerkmale sind unbekannt oder müssen von der Anwendung bestimmt werden
03 Für zukünftige ITU- oder ISO/IEC-Verwendung reserviert
04 BT.470 System M, NTSC (Standarddefinition Fernsehen in den USA)
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 General Film
09 BT.2020; BT.2100. Verwendet für ultra-hochauflösendes (4K) High Dynamic Range (HDR)-Video, diese haben einen sehr weiten Farbraum Gamut und unterstützen 10-Bit- und 12-Bit-Farbkomponenten-Tiefen.
10 SMPTE ST 428 (D-Cinema Verteilungs-Master: Bildmerkmale). Definiert die unkomprimierten Bildmerkmale für DCDM.
11 SMPTE RP 431 (D-Cinema Qualität: Referenzprojektor und Umgebung). Beschreibt den Referenzprojektor und Umgebungsbedingungen, die eine konsistente Filmdarstellungserfahrung bieten.
12 SMPTE EG 432 (Digital Source Processing: Farbverarbeitung für D-Cinema). Technische Richtlinie, die Farbdekodierungsempfehlungen für digitale Filme gibt.
1321 Für zukünftige ITU-T- oder ISO/IEC-Verwendung reserviert
22 EBU Tech 3213-E
23255 Für zukünftige ITU-T- oder ISO/IEC-Verwendung reserviert
tc Ein zweistelliger Ganzzahlwert, der die transferCharacteristics für das Video anzeigt. Dieser Wert stammt aus Abschnitt 8.2 der ISO/IEC 23001-8:2016 und gibt die Transfercharakteristika an, die bei der Anpassung der decodierten Farbe an das Zielobjekt 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, welche Koeffizientengarnitur verwendet werden soll, um die nativen Rot-, Blau- und Grünprimärfarben in die Luma- und Chroma-Signale zu konvertieren. Diese Koeffizienten werden wiederum mit den Gleichungen in demselben Abschnitt verwendet.
FF Gibt an, ob die schwarz-weiße Stufe und der Farbbereich jeder Farbkomponente auf den legalen Bereich beschränkt werden sollen. Für 8-Bit-Farbproben liegt der legale Bereich bei 16-235. Ein Wert von 00 zeigt an, dass diese Einschränkungen durchgesetzt werden sollen, während ein Wert von 01 die volle Bandbreite der möglichen Werte für jede Komponente zulässt, auch wenn die resultierende Farbe außerhalb des Farbsystems ist.

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-Chroma-Subsampling, BT.2020 Primärfarben, ST 2084 EOTF (HDR SMPTE), BT.2020 Nicht-Konstant-Luminanz-Farbmatrix und volle Bereichs-Chroma- und Luma-Codierung. Das Audio 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 den folgenden MIME-Typen unter Verwendung des codecs-Parameters 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-audiovisuelle Medien, die in MPEG-4 gekapselt sind

Jeder durch den codecs-Parameter beschriebene Codec kann entweder als Name des Containers (3gp, mp4, quicktime, etc.) oder als Container-Name plus zusätzliche Parameter angegeben werden, um den Codec und dessen Konfiguration zu spezifizieren. 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; sie beginnt jedoch immer mit dem vierstelligen Identifikator des Codecs, einem Punkt-Separator (.), gefolgt von dem Object Type Indication (OTI)-Wert für das spezifische Datenformat. Bei den meisten Codecs ist das OTI eine zweistellige Hexadezimalzahl; für AVC (H.264) sind es jedoch sechs hexadezimale Stellen.

Somit sehen die Syntaxen für jeden der unterstützten Codecs so aus:

cccc[.pp]* (Generisches ISO BMFF)

Wobei cccc der vierstellige ID für den Codec ist und pp der Ort ist, an dem null oder mehr zweistellige kodierte Eigenschaftswerte stehen.

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

Wo oo der Object Type Indication-Wert ist, der den Inhalt der Medien präziser beschreibt, und A ist der einstellig Audio-OTI. Die möglichen Werte für das OTI finden Sie auf der Website der MP4-Registrierungsstelle auf der Seite Object Types. Zum Beispiel wird Opus-Audio in einer MP4-Datei mp4a.ad genannt. Weitere Details finden Sie unter MPEG-4 Audio.

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

Hier ist oo wieder das OTI, das den Inhalt genauer beschreibt, während V der einstellig Video-OTI ist.

avc1[.PPCCLL] (AVC Video)

PPCCLL sind sechs hexadezimale Ziffern, die die Profilnummer (PP), die Constraint-Set-Flags (CC) und das Level (LL) spezifizieren. Siehe AVC-Profile für die möglichen Werte von PP.

Das Constraint-Set-Flags-Byte besteht aus einzelbitigen Booleschen Flags, wobei das bedeutendste Bit als Flag 0 (oder constraint_set0_flag, in einigen Ressourcen) bezeichnet wird und jedes darauf folgende Bit um eins höher nummeriert ist. Derzeit werden nur die Flags 0 bis 2 verwendet; die anderen fünf Bits müssen null sein. Die Bedeutungen der Flags variieren je nach verwendetem Profil.

Das Level ist eine Festkommazahl, sodass ein Wert von 14 (Dezimal 20) Level 2.0 bedeutet, während ein Wert von 3D (Dezimal 61) Level 6.1 bedeutet. Allgemein gesagt, je höher die Levelsnummer, desto mehr Bandbreite verwendet der Stream 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 sowie der Wert, der für die Einschränkungskomponente CC angegeben werden soll.

Profil Nummer (Hex) Einschränkungs-Byte
Constrained Baseline Profile (CBP) CBP ist hauptsächlich eine Lösung für Szenarien, in denen Ressourcen eingeschränkt sind oder der Ressourcenverbrauch kontrolliert werden muss, um die Wahrscheinlichkeit zu minimieren, dass die Medien schlecht funktionieren. 42 40
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Datenverlustschutz und Erholungsfähigkeiten. Dies wird nicht so weit verbreitet verwendet wie früher, als CBP eingeführt wurde. Alle CBP-Ströme gelten auch als BP-Ströme. 42 00
Extended Profile (XP) Entworfen für das Streaming von Video über das Netz, mit hoher Kompressionsfähigkeit und weiteren Verbesserungen der Datenrobustheit und Stream-Umschaltung. 58 00
Main Profile (MP) Das Profil, das für standarddefinition digitales Fernsehen verwendet wird, das im MPEG-4-Format ausgestrahlt wird. Wird nicht für hochauflösendes Fernsehen verwendet. Die Bedeutung dieses Profils ist seit der Einführung des High Profile – das 2004 für HDTV hinzugefügt wurde – verblasst. 4D 00
High Profile (HiP) Derzeit das Hauptprofil, das für Rundfunk- und scheibenbasierte HD-Videos verwendet wird; es wird sowohl für HDTV-Übertragungen als auch für Blu-Ray-Video verwendet. 64 00
Progressive High Profile (PHiP) Im Wesentlichen High Profile, jedoch ohne Unterstützung für Feldkodierung. 64 08
Constrained High Profile PHiP, jedoch ohne Unterstützung für bi-prädiktive Scheiben ("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 durch Hinzufügen von Unterstützung für 4:2:2 Chroma-Subsampling zusammen mit bis zu 10 Bits pro Farbkomponente. 7A 00
High 4:4:4 Predictive Profile (Hi444PP) Neben den in Hi422P enthaltenen Möglichkeiten fügt Hi444PP Unterstützung für 4:4:4 Chroma-Subsampling hinzu (bei dem keine Farbinformationen verworfen werden). Beinhaltet auch Unterstützung für bis zu 14 Bits pro Farbprobe und effiziente verlustfreie Regionenkodierung. Die Option, jeden Frame als drei separate Farbkanäle zu kodieren (das heißt, die Daten jeder Farbe werden als ob es ein einzelner monochromer Frame wäre gespeichert). F4 00
High 10 Intra Profile High 10 auf die Verwendung von Intra-Frames beschränkt. Wird hauptsächlich für professionelle Anwendungen verwendet. 6E 10
High 4:2:2 Intra Profile Das Hi422-Profil nur mit Intra-Frames. 7A 10
High 4:4:4 Intra Profile Das High 4:4:4-Profil, das nur Intra-Frames verwendet. F4 10
CAVLC 4:4:4
Intra Profile
Das High 4:4:4-Profil, beschränkt auf nur Intra-Benutzung und auf die Verwendung nur von CAVLC-Entropie-Codierung.
44 00
Scalable Baseline Profile Entwickelt für den Einsatz bei Videokonferenzen sowie bei Überwachungs- und mobilen Anwendungen. Das SVC-Baseline-Profil basiert auf dem Constrained Baseline Profil von AVC. Der Basisstrom innerhalb des Stroms wird auf einem hohen Qualitätsniveau bereitgestellt, mit mehreren sekundären Substreams, die alternative Formen desselben Videos bieten, die in verschiedenen eingeschränkten Umgebungen verwendet werden können. Diese können jede Kombination aus niedrigerer Auflösung, niedrigerer Bildfrequenz oder erhöhter Komprimierungsstufen enthalten. 53 00
Scalable Constrained Baseline Profile Hauptsächlich für Echtzeitkommunikationsanwendungen verwendet. Wird noch nicht von WebRTC unterstützt, aber eine Erweiterung der WebRTC-API um SVC zu unterstützen ist in Entwicklung. 53 04
Scalable High Profile Hauptsächlich für Rundfunk- und Streaming-Anwendungen gedacht. Die Basisschicht (oder die höchste Qualitätsstufe) muss dem AVC High Profile entsprechen. 56 00
Scalable Constrained High Profile Ein Unterset des Scalable High Profile, das hauptsächlich für Echtzeitkommunikation entwickelt wurde. 56 04
Scalable High Intra Profile Hauptsächlich nur für Produktionsanwendungen nützlich unterstützt dieses Profil nur die vollständige Intra-Benutzung. 56 20
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video, das zwei Darstellungen der Szene verwendet (für das linke und rechte Auge). Ansonsten bietet es die gleichen Funktionen wie das High Profile. 80 00
Multiview High Profile Unterstützt zwei oder mehr Ansichten mit sowohl temporärer als auch MVC-Inter-Ansichts-Prädiktion. Unterstützt nicht Feldbilder oder makroblockadaptive Frame-Feldkodierung. 76 00
Multiview Depth High Profile Basierend auf dem High Profile, dem der Hauptstream genügen muss. Die verbleibenden Substreams müssen mit dem Stereo High Profile übereinstimmen. 8A 00

MPEG-4 Audio

Wenn der Wert eines Eintrags in der codecs-Liste mit mp4a beginnt, sollte die Syntax des Werts folgendermaßen lauten:

mp4a.oo[.A]

Hierbei ist oo die zweistellige Hexadezimal-Object Type Indication, die die verwendete Codec-Klasse für die Medien spezifiziert. Die OTIs werden von der MP4 Registrierungsstelle zugewiesen, die eine Liste der möglichen OTI-Werte verwaltet. Ein besonderer Wert ist 40; dies gibt an, dass die Medien MPEG-4 Audio (ISO/IEC 14496 Teil 3) sind. Um noch genauer zu werden, wird eine dritte Komponente – der Audio Object Type – für OTI 40 hinzugefügt, um den Typ auf einen spezifischen Subtyp von MPEG-4 zu beschränken.

Der Audio Object Type wird als ein oder zwei-stellige dezimale Zahl angegeben (im Gegensatz zu den meisten anderen Werten im codecs-Parameter, die Hexadezimal verwenden). Zum Beispiel hat MPEG-4's AAC-LC eine Audio-Objekttypnummer von 2, sodass der vollständige codecs-Wert, der AAC-LC darstellt, mp4a.40.2 ist.

Somit kann ER AAC LC, dessen Audio Object Type 17 ist, durch den vollständigen codecs-Wert mp4a.40.17 dargestellt werden. Einerstelle Werte können entweder als eine Ziffer angegeben werden (was die beste Wahl ist, da es am weitesten kompatibel sein wird) oder mit einer führenden Null, um sie auf zwei Ziffern aufzufüllen, wie mp4a.40.02.

Hinweis: Die Spezifikation verlangte ursprünglich, dass die Audio Object Type-Nummer in der dritten Komponente nur eine Dezimalstelle sein darf. Änderungen der Spezifikation im Laufe der Zeit erweiterten jedoch den Bereich dieser Werte weit über eine Dezimalstelle hinaus, indem sie nun entweder eine oder zwei Ziffern haben darf. Durch Auffüllen von Werten unter 10 mit einer führenden 0 bleibt optional. Ältere Implementierungen von MPEG-4 Codecs unterstützen möglicherweise keine zweistelligen Werte; daher maximiert die Verwendung einer einzigen Ziffer, wenn möglich, die Kompatibilität.

Die Audio-Objekttypen sind in ISO/IEC 14496-3 Unterteil 1, Abschnitt 1.5.1 definiert. Die folgende Tabelle bietet eine grundlegende Liste der Audio-Objekttypen und im Falle der gebräuchlicheren Objekttypen eine Liste der Profile, die es unterstützen; für Details zu den inneren Abläufen eines bestimmten MPEG-4 Audios treten Sie jedoch bitte in die Spezifikation ein.

MPEG-4 Audio-Objekt-Typen
ID Audio-Objekt-Typ Profil-Unterstützung
0 NULL
1 AAC Main Main
2 AAC LC (Low Complexity) Main, Scalable, HQ, LD v2, AAC, HE-AAC, HE-AAC v2
3 AAC SSR (Scalable Sampling Rate) Main
4 AAC LTP (Long Term Prediction) Main, Scalable, HQ
5 SBR (Spectral Band Replication) HE-AAC, HE-AAC v2
6 AAC Scalable Main, Scalable, HQ
7 TwinVQ (Coding for ultra-low bit rates) Main, Scalable
8 CELP (Code-Excited Linear Prediction) Main, Scalable, Speech, HQ, LD
9 HVXC (Harmonic Vector Excitation Coding) Main, Scalable, Speech, LD
1011 Reserviert
12 TTSI (Text to Speech Interface) Main, Scalable, Speech, Synthetic, LD
13 Main Synthetisch Main, Synthetic
14 Wavetable-Synthese
15 General MIDI
16 Algorithmische Synthese und Audio-Effekte
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 Scalable (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 die Zwei-Wege-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 (Fehlerresistentes Parametrisch)
28 SSC (Sinusoidale Codierung)
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 (Direkte Stream-Übertragung)
36 ALS (Audioverlustlosigkeit)
37 SLS (Skalierbare Verlustlosigkeit)
38 SLS Kein Kern (Skalierbare Verlustlosigkeit Kein Kern)
39 ER AAC ELD (Error Resilient AAC Enhanced Low Delay)
40 SMR Simple (Symbolische Musikdarstellung Einfach)
41 SMR Main (Symbolische Musikdarstellung Haupt)
42 Reserviert
43

SAOC (Räumliche Audioobjekt-Codierung)

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

44

LD MPEG Surround (Niedrige Verzögerung MPEG Surround)

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

45 und höher Reserviert

WebM

Die grundlegende Form eines WebM-codecs-Parameters besteht darin, einen oder mehrere der vier WebM-Codecs nach deren 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. Erstens 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, aus denen ausgewählt wird, wenn er das Format der Medien auswählt, die dem Benutzer im Element präsentiert werden.

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

Siehe auch