Codecs in gängigen 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 diejenigen, die Videospuren unterstützen – können jedoch von der Möglichkeit profitieren, das Format der Daten innerhalb dieser 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, in welchem Format die tatsächlichen Medien vorliegen.
Aus diesem Grund kann der codecs
-Parameter zum MIME-Typ hinzugefügt werden, der Medieninhalte beschreibt. Mit ihm können container-spezifische Informationen bereitgestellt werden. Diese Informationen können Dinge wie das Profil des Video-Codecs, den für die Audiotracks verwendeten Typ und so weiter enthalten.
Dieser Leitfaden untersucht kurz die Syntax des codecs
-Parameters des Medientyps und wie er mit dem MIME-Typ-String verwendet wird, um Details über den Inhalt von Audio- oder Videomedien bereitzustellen, über die bloße Angabe des Containertyps hinaus.
MIME-Typen von Containerformaten
Der MIME-Typ für ein Containerformat wird ausgedrückt, indem der Medientyp (audio
, video
, etc.) angegeben, dann ein Schrägstrich (/
) und schließlich das Format, das zur Speicherung der Medien verwendet wird, geschrieben wird:
audio/mpeg
-
Eine Audiodatei, die den MPEG-Dateityp verwendet, wie z. B. 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 einst häufig im Web genutzt, ist es jetzt jedoch nicht mehr, da ein Plugin erforderlich war, um es zu verwenden.
Jeder dieser MIME-Typen ist jedoch vage. Alle diese Dateitypen unterstützen eine Vielzahl von Codecs, und diese Codecs können eine beliebige Anzahl von Profilen, Stufen und anderen Konfigurationsfaktoren haben. Aus diesem Grund sollten Sie den codecs
-Parameter zusammen mit dem Medientyp angeben.
Grundlegende Syntax
Sie können den codecs
-Parameter zum Medientyp hinzufügen. Fügen Sie dazu ein Semikolon (;
) hinzu, gefolgt von codecs=
und dann dem String, der das Format des Inhalts der Datei beschreibt. Einige Medientypen erlauben Ihnen nur, die Namen der zu verwendenden Codecs anzugeben, während andere es gestatten, auch verschiedene Einschränkungen für diese Codecs anzugeben. Sie können mehrere Codecs durch Kommas trennen.
audio/ogg; codecs=vorbis
video/webm; codecs="vp8, vorbis"
video/mp4; codecs="avc1.4d002a"
-
Eine MPEG-4-Datei mit AVC (H.264)-Video, Hauptprofil, Ebene 4.2.
Wie bei jedem MIME-Typ-Parameter muss auch codecs
in codecs*
geändert werden (achten Sie auf das Sternchen, *
), wenn einer der Codec-Eigenschaften Sonderzeichen verwendet, die gemäß RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions Prozent-codiert werden müssen. Sie können die JavaScript-Funktion encodeURI()
verwenden, um die Parameterliste zu codieren; ähnlich können Sie decodeURI()
verwenden, um eine zuvor codierte Parameterliste zu decodieren.
Hinweis: Wenn der codecs
-Parameter verwendet wird, muss die angegebene Codecs-Liste jeden Codec enthalten, der für den Inhalt der Datei verwendet wird. Die Liste kann auch Codecs enthalten, die nicht in der Datei 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 zum selben Abschnitt; das liegt daran, dass diese Medientypen alle auf dem ISO Base Media File Format (ISO BMFF) basieren und daher dieselbe 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 (statt alle oder keine, wie es die Spezifikation erfordert).
Die Komponenten dieses Codec-Parameter-Strings werden im Folgenden in der Tabelle detaillierter beschrieben. Jede Komponente hat eine feste Länge an Zeichen; ist der Wert kleiner als diese Länge, muss er mit führenden Nullen aufgefüllt werden.
Komponente | Details | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P |
Die einstellige Profilnummer:
|
||||||||||||||||||||
LL |
Die zweistellige Levelnummer, die in das X.Y-Formatlevel 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 Tier-Indikator. Für das Main-Tier (seq_tier entspricht 0) ist dieser Buchstabe das Zeichen M .
Für das High-Tier (seq_tier ist 1) ist dieses Zeichen das Zeichen H .
Das High-Tier ist nur für Level 4.0 und darüber verfügbar.
|
||||||||||||||||||||
DD |
Die zweistellige Komponentenfarbtiefe. Dieser Wert muss einer der Werte 8, 10 oder 12 sein; welche Werte gültig sind, variiert je nach Profil und anderen Eigenschaften. | ||||||||||||||||||||
M |
Die einstellige monochrome Flagge; wenn dies 0 ist, umfasst 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 monochromatisch. Siehe YUV für Details zum Funktionieren des YUV-Farbsystems. Der Standardwert ist 0 (nicht monochrom). | ||||||||||||||||||||
CCC |
Die dritte Ziffer in Der Standardwert ist |
||||||||||||||||||||
cp |
Der zweistellige color_primaries -Wert gibt das von den Medien verwendete Farbsystem an.
Beispielsweise ist BT.2020/BT.2100 Farbe, wie sie für HDR-Video verwendet wird, 09 .
Die Informationen hierzu – und zu jeder der verbleibenden Komponenten – finden Sie im Abschnitt „Farbkonfigurations-Semantik“ der AV1-Spezifikation.
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 Technik herrlich als "opto-elektronische Übertragungsfunktion" bezeichnet) von der Quelle auf das Display abzubilden.
Beispielsweise ist 10-Bit BT.2020 14 .
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
mc |
Die zweistellige matrix_coefficients -Konstante wählt die Matrix-Koeffizienten aus, die verwendet werden, um die roten, blauen und grünen Kanäle in Luma- und Chroma-Signale umzuwandeln.
Beispielsweise werden die standardmäßig für BT.709 verwendeten Koeffizienten durch den Wert 01 angegeben.
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
F |
Ein einstelliger Indikator, der angibt, ob die Farbe den vollen Bereich möglicher Werte verwenden darf (1 ), oder auf die Werte beschränkt werden soll, die für die angegebene Farbkonfiguration als zulässig gelten (d. h. die Studio-Swing-Darstellung).
Der Standardwert ist 0 (Verwendung der Studio-Swing-Darstellung).
|
Alle Felder ab M
(monochrome Flagge) sind optional; Sie können die Aufnahme von Feldern jederzeit beenden (aber können Felder nicht beliebig weglassen). 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 Profile, Stufe 5.3, Main Tier, 10 Bits pro Farbkomponente, 4:2:2 Chroma-Subsampling mit ITU-R BT.2100-Farbprimaries, Transfercharakteristiken und YCbCr-Farbmatrix. Die Studio-Swing-Darstellung ist angegeben.
av01.0.15M.10
-
AV1 Main Profile, Stufe 5.3, Main Tier, 10 Bits pro Farbkomponente. Die verbleibenden Eigenschaften werden aus den Standardeinstellungen übernommen: 4:2:0 Chroma-Subsampling, BT.709 Farbprimaries, Übertragungscharakteristiken und Matrixkoeffizienten. Studio Swing-Darstellung.
VP9
ISO Based Media File Format Syntax
Die Syntax des codecs
-Parameters für VP9 ist im VP Codec ISO Media File Format Binding spezifiziert, im Abschnitt Codecs Parameter String.
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 durch Punkte (.
) getrennten zweiziffrigen 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, aber entweder alles oder nichts. Jede dieser Komponenten wird in der folgenden Tabelle beschrieben. Nach der Tabelle folgen einige Beispiele.
Komponente | Details | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cccc |
Ein vierstelliger Code, der angibt, welcher der potenziell möglichen Codecs beschrieben wird. Mögliche Werte sind:
|
||||||||||||||||||||||||||||||||||
PP |
Die zweiziffrige Profilnummer, mit führenden Nullen aufgefüllt, falls erforderlich, um genau zwei Ziffern zu erreichen.
|
||||||||||||||||||||||||||||||||||
LL |
Die zweiziffrige Levelnummer.
Die Levelnummer wird als Festkommanotation angegeben, wobei die erste Ziffer die Ganze Zahl und die zweite Ziffer die Zehntel darstellt.
Beispielsweise 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 "Digitale Videokonzepte"-Leitfaden für weitere Informationen zu diesem und anderen Themen.
|
||||||||||||||||||||||||||||||||||
cp |
Ein zweistelliger ganzzahliger Wert, der angibt, welches der Farbprimaries aus Abschnitt 8.1 des ISO/IEC 23001-8:2016 Standards verwendet wird. Diese Komponente ist optional, ebenso wie jede nachfolgende Komponente. Die möglichen Werte der Farbprimaries-Komponente sind:
|
||||||||||||||||||||||||||||||||||
tc |
Ein zweistelliger ganzzahliger Wert, der die
transferCharacteristics des Videos angibt.
Dieser Wert stammt aus Abschnitt 8.2 von ISO/IEC 23001-8:2016 und kennzeichnet die Übertragungscharakteristiken, die bei der Adaption der dekodierten Farbe auf das Wiedergabe-Ziel verwendet werden.
|
||||||||||||||||||||||||||||||||||
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 Koeffizienten zur Abbildung der nativen Rot-, Blau- und Grün-Primärfarben auf die Luma- und Chrominanzsignale verwendet werden sollen.
Diese Koeffizienten werden wiederum mit den in diesem Abschnitt gefundenen Gleichungen verwendet.
|
||||||||||||||||||||||||||||||||||
FF |
Gibt an, ob die Schwarzlevels und deren Reichweite auf den legalen Farbumfang beschränkt werden sollen.
Bei 8-Bit-Farbmustern liegt der legale Bereich zwischen 16 und 235.
Ein Wert von 00 gibt an, dass diese Begrenzungen durchgesetzt werden sollen, während ein Wert von 01 den vollen Bereich für jede Komponente erlaubt, auch wenn die resultierende Farbe aus dem erlaubten Farbumfang herausfällt.
|
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-Inhalten unter Verwendung von 4:2:0-Chroma-Subsampling, BT.2020-Primärfarben, ST 2084 EOTF (HDR-SMPTE), BT.2020-Farbmatrix ohne konstante Luminanz und voller Bereich für Chroma und Luma. Das Audio ist im Opus-Format.
ISO Base Media File Format: MP4, QuickTime, and 3GP
Alle Medientypen, die auf dem ISO Base Media File Format (ISO BMFF) basieren, verwenden die gleiche Syntax für den codecs
-Parameter. Diese Medientypen schließen MPEG-4 (und in der Tat das QuickTime-Dateiformat, auf dem MPEG-4 basiert) ebenso ein wie 3GP. Sowohl Video- als auch Audiotracks können mithilfe des codecs
-Parameters mit 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-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 Containername mit zusätzlichen Parametern zur Spezifikation des Codecs und seiner Konfiguration angegeben werden. Jeder Eintrag in der Codec-Liste kann eine beliebige 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 Codec-Identifikationscode, einem Punktseparator (.
), gefolgt von dem Object Type Indication (OTI)-Wert für das spezifische Datenformat. Für die meisten Codecs ist der OTI eine zweistellige hexadezimale Zahl; für AVC (H.264) sind es jedoch sechs hexadezimale Ziffern.
Somit sehen die Syntaxen für jeden der unterstützten Codecs wie folgt aus:
cccc[.pp]*
(Generisches ISO BMFF)-
Wo
cccc
die vierstellige ID für den Codec ist undpp
der Ort ist, an dem null oder mehr zweistellige codierte Eigenschaftswerte hingehen. mp4a.oo[.A]
(MPEG-4 Audio)-
Wo
oo
der Object Type Indication-Wert ist, der den Inhalt der Medien genauer beschreibt undA
der einstellig audio OTI ist. Die möglichen Werte für den OTI finden Sie auf der Website der MP4-Registrierungsbehörde auf der Object Types Seite. Beispielsweise ist Opus-Audio in einer MP4-Dateimp4a.ad
. Weitere Einzelheiten finden Sie unter MPEG-4 Audio. mp4v.oo[.V]
(MPEG-4 Video)-
Hier ist
oo
wieder der OTI, der den Inhalt genauer beschreibt, währendV
der einstellig video OTI ist. avc1[.PPCCLL]
(AVC Video)-
PPCCLL
sind sechs hexadezimale Ziffern, die die Profilnummer (PP
), die Einschränkungssatzflaggen (CC
) und das Level (LL
) angeben. Siehe AVC-Profile für die möglichen Werte vonPP
.Das Constraint Set Flags Byte besteht aus einstelligen 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 Flaggen variieren je nach verwendetem Profil.Das Level ist eine Festkommazahl, sodass ein Wert von
14
(Dezimalzahl 20) Level 2.0 bedeutet, während ein Wert von3D
(Dezimalzahl 61) Level 6.1 bedeutet. Im Allgemeinen gilt: Je höher die Levelnummer, desto mehr Bandbreite wird der Stream nutzen, und desto größer sind die maximal unterstützten Videodimensionen.
AVC-Profile
Im Folgenden finden Sie die AVC-Profile und ihre Profilnummern zur Verwendung im codecs
-Parameter sowie den Wert zur Spezifikation der Einschränkungen, CC
.
Profil | Nummer (Hex) | Constraints Byte |
---|---|---|
Constrained Baseline Profile (CBP) CBP ist in erster Linie eine Lösung für Szenarien, in denen Ressourcen beschränkt sind oder Ressourcen mit Kontrollbedarf eingesetzt werden müssen, um die Wahrscheinlichkeit zu minimieren, dass die Medienleistung abnimmt. | 42 |
40 |
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Schutz vor Datenverlust und Wiederherstellungsfähigkeit. Dieses Profil wird nicht mehr 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 Streaming von Videos über das Netzwerk mit hoher Komprimierungsfähigkeit und weiteren Verbesserungen in der Datenfestigkeit und dem Stream-Switching. | 58 |
00 |
Main Profile (MP) Das Profil, das für digitales Standarddefinition (SD) Fernsehen verwendet wird, das im MPEG-4-Format ausgestrahlt wird. Nicht für hochauflösendes Fernsehen (HDTV) geeignet. Die Bedeutung dieses Profils ist seit der Einführung des High-Profiles – welches 2004 für HDTV eingeführt wurde – zurückgegangen. | 4D |
00 |
High Profile (HiP) Derzeit ist HiP das Hauptprofil für Broadcast- und Discbasierte HD-Videos; es wird sowohl für HD-TV-Sendungen als auch für Blu-Ray-Videos verwendet. | 64 |
00 |
Progressive High Profile (PHiP) Im Wesentlichen das High-Profile ohne Unterstützung für Feldkodierung. | 64 |
08 |
Constrained High Profile PHiP, jedoch ohne Unterstützung für bi-prädiktive Slices ("B-Slices"). | 64 |
0C |
High 10 Profile (Hi10P) High-Profile mit Unterstützung für bis zu 10 Bit 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 sowie bis zu 10 Bit pro Farbkomponente. | 7A |
00 |
High 4:4:4 Predictive Profile (Hi444PP) Zusätzlich zu den Fähigkeiten von Hi422P 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 Bit pro Farbprobe und effizientes verlustfreies Bereichscodieren. Es ist möglich, jedes Bild als drei separate Farbkanäle zu codieren (das heißt, die Daten jeder Farbe werden gespeichert, als wären sie ein einzelnes monochromes Bild). | F4 |
00 |
High 10 Intra Profile High 10 beschränkt auf reine Intra-Frame Nutzung. In erster Linie für professionelle Anwendungen verwendet. | 6E |
10 |
High 4:2:2 Intra Profile Das Hi422 Profil mit reiner Intra-Frame Nutzung. | 7A |
10 |
High 4:4:4 Intra Profile Das High 4:4:4 Profil, auf reine Intra-Frames beschränkt. | F4 |
10 |
CAVLC 4:4:4 Intra Profile Das High 4:4:4 Profil beschränkt auf reine Intra-Nutzung und auf Verwendung nur des CAVLC Entropie-Codierung. | 44 |
00 |
Scalable Baseline Profile Entwickelt für den Einsatz bei Videokonferenzen sowie Überwachungs- und mobilen Anwendungen, basiert das SVC Baseline-Profil auf dem AVC's Constrained Baseline Profil. Die Basisschicht im Stream wird auf einem hohen Qualitätsniveau bereitgestellt, mit einer Anzahl von sekundären Substreams, die alternative Formen desselben Videos bieten, um in verschiedenen eingeschränkten Umgebungen verwendet zu werden. Diese können jede Kombination aus reduzierter Auflösung, reduzierter Bildrate oder erhöhte Komprimierungsgrad enthalten. | 53 |
00 |
Scalable Constrained Baseline Profile Hauptsächlich für Echtzeitkommunikationsanwendungen verwendet. Noch nicht von WebRTC unterstützt, aber eine Erweiterung der WebRTC-API um SVC zu ermöglichen ist in Entwicklung. | 53 |
04 |
Scalable High Profile Hauptsächlich für Broadcast- und Streaming-Anwendungen gedacht. Die Basis-(oder höchste Qualitäts-) Schicht muss mit dem AVC-High-Profile übereinstimmen. | 56 |
00 |
Scalable Constrained High Profile Ein Unterprofil des Scalable High Profiles, 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 reine Intra-Nutzung. | 56 |
20 |
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video unter Verwendung zweier Wiedergaben der Szene (linkes Auge und rechtes Auge). Ansonsten bietet es dieselben Funktionen wie das High Profile. | 80 |
00 |
Multiview High Profile Unterstützt zwei oder mehr Ansichten sowohl mit zeitlicher als auch mit MVC-interlaced Vorhersage. Unterstützt nicht Feldbilder oder Macroblock-adaptive Frame-Field-Codierung. | 76 |
00 |
Multiview Depth High Profile Basierend auf dem High-Profile, auf das der Haupt-Substream verweisen muss. Die restlichen 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 Werts wie folgt sein:
mp4a.oo[.A]
Hierbei ist oo
die zweistellige hexadezimale Object Type Indication, 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 verwaltet. Ein spezieller Wert ist 40
; dieser gibt an, dass es sich bei den Medien um MPEG-4-Audio handelt (ISO/IEC 14496 Teil 3). Um noch spezifischer zu werden, wird für OTI 40
eine dritte Komponente – der Audiowiedergabetyp – hinzugefügt, um den Typ auf eine bestimmte Subklasse von MPEG-4 zu spezifizieren.
Der Audio-Wiedergabetyp wird als eine oder zwei Dezimalstellen angegeben (im Gegensatz zu den meisten anderen Werten im codecs
-Parameter, die hexadezimal sind). Beispiel: MPEG-4's AAC-LC hat eine Audio-Wiedergabetyp-Nr. von 2
, sodass der volle codecs
-Wert, der AAC-LC darstellt, mp4a.40.2
ist.
So kann der "ER AAC LC"-Codec, dessen Audiowiedergabetyp 17 ist, durch den vollen codecs
-Wert mp4a.40.17
dargestellt werden. Einzellige Werte können entweder als eine Stelle (was die beste Wahl ist, da dies die mit den meisten Geräten kompatible ist) oder mit einer führenden Null, die sie auf zwei Stellen füllt, wie mp4a.40.02
, angegeben werden.
Hinweis: Die Spezifikation verlangte ursprünglich, dass die Audiowiedergabetyp-Nummer in der dritten Komponente nur eine Dezimalstelle sein durfte. Änderungen der Spezifikation im Laufe der Zeit haben jedoch den Bereich dieser Werte weit über eine Dezimalstelle hinaus erweitert, sodass die dritte Komponente jetzt entweder eine oder zwei Stellen haben kann. Eine Null vor den Zahlen unter 10 hinzuzufügen, ist optional. Ältere Implementierungen von MPEG-4-Codecs unterstützen möglicherweise keine zweistelligen Werte, sodass die Verwendung einer Stelle, wann immer möglich, die Kompatibilität maximiert.
Die Audiowiedergabetypen sind in ISO/IEC 14496-3 Teil 1, Abschnitt 1.5.1, definiert. Die folgende Tabelle bietet eine grundlegende Liste der Audiowiedergabetypen und im Falle der häufigsten Typen eine Liste der unterstützenden Profile, Sie sollten jedoch die Spezifikation für Details heranziehen, wenn Sie mehr über die inneren Mechanismen eines bestimmten MPEG-4-Audiotyps erfahren müssen.
ID | Audiowiedergabetyp | Profilunterstü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 |
10 – 11 |
Reserviert | |
12 |
TTSI (Text to Speech Interface) | Main, Scalable, Speech, Synthetic, LD |
13 |
Hauptsynthetisch | Main, Synthetic |
14 |
Wavetable 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 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 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 Parametric (Error Resilient Parametric) | |
28 |
SSC (Sinusoïdale 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 (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 grundlegende Form eines WebM codecs
-Parameters besteht darin, einen oder mehrere der vier WebM-Codecs namentlich anzugeben, 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 angegeben. |
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 Strings vp8.0
und vp9.0
funktionieren ebenfalls, jedoch wird dies 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 der er beim Auswählen des Medienformats, das er dem Benutzer im Element präsentieren soll, wählen kann.
Sie können den codecs
-Parameter auch beim Festlegen eines MIME-Medientyps für die MediaSource.isTypeSupported()
-Methode verwenden; diese Methode gibt eine boolesche Aussage zurück, die anzeigt, ob die Medien wahrscheinlich auf dem aktuellen Gerät funktionieren werden oder nicht.
Siehe auch
- Web-Medientechnologien
- Das
<source>
-Element, ein Kindelement der<audio>
und<video>
-Elemente - Leitfaden zu Medientypen und -formaten im Web
- Leitfaden zu Audio-Codecs im Web
- Leitfaden zu Video-Codecs im Web
- Codecs, die von WebRTC verwendet werden
- Erhalten des korrekten HTML-Codecs-Parameters für ein AV1-Video