Codecs in gemeinsamen Medientypen
Auf fundamentaler Ebene können Sie den Medientyp einer Datei mit einem einfachen MIME Typ spezifizieren, wie video/mp4
oder audio/mpeg
. Jedoch können viele Medientypen – besonders jene, die Videospuren unterstützen – davon profitieren, die Datenformate präziser zu beschreiben. Zum Beispiel sagt eine Beschreibung eines Videos in einer MPEG-4-Datei mit dem MIME-Typ video/mp4
nichts über das Format der eigentlichen Mediendaten aus.
Aus diesem Grund kann der codecs
Parameter zum MIME-Typ hinzugefügt werden, um Medieninhalte genauer zu beschreiben. Mit ihm können container-spezifische Informationen bereitgestellt werden, wie etwa das Profil des Video-Codecs, der Typ der für die Audiospuren verwendet wird, und so weiter.
Dieser Leitfaden untersucht kurz die Syntax des codecs
Parameters für Medientypen und wie er zusammen mit dem MIME-Typ genutzt wird, um Details über die Inhalte von Audio- oder Videomedien über den Containertyp hinaus anzugeben.
Containerformat MIME-Typen
Der MIME-Typ für ein Containerformat wird ausgedrückt, indem der Medientyp (audio
, video
, etc.) angegeben wird, dann ein Schrägstrich (/
), gefolgt vom Format, das zur Speicherung des Mediums verwendet wird:
audio/mpeg
-
Eine Audiodatei, die den MPEG Dateityp verwendet, wie etwa 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 früher häufig im Web verwendet, ist aber heute nicht mehr gebräuchlich, da zur Nutzung ein Plugin erforderlich war.
Jedoch sind diese MIME-Typen sehr ungenau. Alle unterstützten Dateitypen verwenden eine Vielzahl von Codecs, die wiederum mehrere Profile, Level und andere Konfigurationsfaktoren haben können. Aus diesem Grund sollten Sie den codecs
Parameter zusammen mit dem Medientyp einbeziehen.
Grundlegende Syntax
Sie können den codecs
Parameter zum Medientyp hinzufügen. Dafür hängen Sie ein Semikolon (;
), gefolgt von codecs=
und dann der Zeichenkette, die das Inhaltsformat der Datei beschreibt, an. Einige Medientypen erlauben Ihnen nur, die Namen der zu verwendenden Codecs anzugeben, während andere es ermöglichen, zusätzliche Einschränkungen für diese Codecs zu spezifizieren. Sie können mehrere Codecs durch Kommata trennen.
audio/ogg; codecs=vorbis
video/webm; codecs="vp8, vorbis"
video/mp4; codecs="avc1.4d002a"
-
Eine MPEG-4 Datei mit AVC (H.264) Video, Main Profile, Level 4.2.
Wie bei jedem MIME-Typ-Parameter muss codecs
zu codecs*
(beachten Sie das Sternzeichen *
) geändert werden, wenn einer der Eigenschaften des Codecs Sonderzeichen benutzt, die nach RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions Prozent-encodiert werden müssen. Sie können die JavaScript-Funktion encodeURI()
nutzen, um die Parameterliste zu kodieren; ebenso kann decodeURI()
verwendet werden, um eine zuvor codierte Parameterliste zu decodieren.
Hinweis: Wenn der codecs
Parameter benutzt wird, muss die angegebene Liste aller Codecs jeden Codec enthalten, der für die Inhalte 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 obigen 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 die gleiche Syntax verwenden.
AV1
Die Syntax des codecs
Parameters für AV1 wird in der Spezifikation AV1 Codec ISO Media File Format Binding definiert, Abschnitt 5: Codecs Parameter String.
av01.P.LLT.DD[.M.CCC.cp.tc.mc.F]
Hinweis: Browser, die auf Chromium basieren, akzeptieren jedes beliebige Subset der optionalen Parameter (statt alle oder keine, wie es die Spezifikation erfordert).
Die Komponenten dieser Codec-Parameterzeichenkette sind in der folgenden Tabelle ausführlicher beschrieben. Jede Komponente hat eine feste Länge in Zeichen; ist der Wert kürzer, muss er mit führenden Nullen aufgefüllt werden.
Komponente | Details | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P |
Die einstellige Profilnummer:
|
||||||||||||||||||||
LL |
Die zweistellige Levelnummer, die in das X.Y-Level-Format konvertiert wird, wobei X = 2 + (LL >> 2) und Y = LL & 3 ist.
Siehe Anhang A, Abschnitt 3 in der AV1-Spezifikation für weitere Details.
|
||||||||||||||||||||
T |
Der einbuchstabige Tier-Indikator. Für das Main-Tier (seq_tier gleich 0) ist dieser Buchstabe M .
Für das High-Tier (seq_tier ist 1) ist dieser Buchstabe H .
Das High-Tier ist nur für Level 4.0 und höher verfügbar.
|
||||||||||||||||||||
DD |
Die zweistellige Bit-Tiefe der Komponenten. Dieser Wert muss einer von 8, 10 oder 12 sein; welche Werte gültig sind, variiert je nach Profil und anderen Eigenschaften. | ||||||||||||||||||||
M |
Das einstellige Monochrom-Flag; wenn dieses auf 0 gesetzt 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 somit monochromatisch. Siehe YUV für Details darüber, wie das YUV-Farbsystem funktioniert. Der Standardwert ist 0 (nicht monochrom). | ||||||||||||||||||||
CCC |
Die dritte Ziffer von Der Standardwert ist |
||||||||||||||||||||
cp |
Der zweistellige Wert color_primaries gibt das Farbsystem an, das von dem Medium verwendet wird.
Zum Beispiel, BT.2020/BT.2100-Farbe, wie sie für HDR-Video verwendet wird, ist 09 .
Die Informationen hierzu - und zu den verbleibenden Komponenten - befinden sich im Farbkonfigurations-Semantik Abschnitt der AV1-Spezifikation.
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
tc |
Der zweistellige Wert transfer_characteristics . Dieser Wert definiert die Funktion, die zum Abbilden der Gamma (in der technischen Fachsprache "Optoelektronische Übertragungsfunktion" genannt) von der Quelle zur Anzeige verwendet wird.
Zum Beispiel ist 10-Bit BT.2020 14 .
Der Wert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
mc |
Die zweistellige Konstante matrix_coefficients wählt die Matrixkoeffizienten aus, die verwendet werden, um die roten, blauen und grünen Kanäle in Luminanz- und Chrominanzsignale zu konvertieren.
Zum Beispiel die Standardkoeffizienten, die für BT.709 verwendet werden, werden durch den Wert 01 angegeben.
Der Wert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
F |
Eine einstellige Flagge, die angibt, ob die Farbe den kompletten Bereich möglicher Werte verwenden kann (1 ), oder auf jene Werte beschränkt werden soll, die für die angegebene Farbkonfiguration als legal erachtet werden (d.h. die Studio-Swing-Darstellung).
Der Standardwert ist 0 (Verwendung der Studio-Swing-Darstellung).
|
Alle Felder ab M
(Monochrome-Flag) sind optional; Sie können die Angabe von Feldern jederzeit beenden (aber nicht zufällig Felder auslassen). Die Standardwerte sind in der obigen Tabelle enthalten. Einige Beispiele für AV1 Codec-Zeichenfolgen:
av01.2.15M.10.0.100.09.16.09.0
-
AV1 Professional-Profil, Level 5.3, Main-Tier, 10-Bit pro Farbkomponente, 4:2:2 Chroma-Subsampling unter Verwendung von ITU-R BT.2100 Farbprimärfarben, Übertragungscharakteristiken und YCbCr-Farbmatrix. Die Studio-Swing-Darstellung ist angegeben.
av01.0.15M.10
-
AV1 Hauptprofil, Level 5.3, Main-Tier, 10-Bit pro Farbkomponente. Die verbleibenden Eigenschaften werden von den Standardwerten übernommen: 4:2:0 Chroma-Subsampling, BT.709 Farbprimärfarben, Übertragungscharakteristiken 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 definiert, 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 durch Punkte (.
) getrennter zweistelliger Werte.
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 alles oder nichts. Jede dieser Komponenten ist in der folgenden Tabelle beschrieben. Unterhalb der Tabelle finden Sie einige Beispiele.
Komponente | Details | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cccc |
Ein vierstelliger Code, der angibt, welcher der möglichen Codecs beschrieben wird. Mögliche Werte sind:
|
||||||||||||||||||||||||||||||||||
PP |
Die zweistellige Profilnummer, bei Bedarf mit führenden Nullen auf genau zwei Ziffern aufgefüllt.
|
||||||||||||||||||||||||||||||||||
LL |
Die zweistellige Levelnummer.
Die Levelnummer ist eine Festkommazahlnotation, wobei die erste Ziffer die Einerstelle ist und die zweite Ziffer Zehntel darstellt.
Zum Beispiel ist Level 3 30 und Level 6.1 ist 61 .
|
||||||||||||||||||||||||||||||||||
DD |
Die Bittiefe der Luma- und Farbkomponentenwerte; erlaubte Werte sind 8, 10 und 12. | ||||||||||||||||||||||||||||||||||
CC |
Ein zweistelliger Wert, der angibt, welches Chroma-Subsampling-Format verwendet werden soll. Die folgende Tabelle listet erlaubte Werte auf; siehe Chroma-Subsampling in unserem Leitfaden "Digitale Videokonzepte" für zusätzliche Informationen zu diesem und anderen Themen.
|
||||||||||||||||||||||||||||||||||
cp |
Eine zweistellige Ganzzahl, die angibt, welche der Farbprimärfaktoren aus Abschnitt 8.1 des ISO/IEC 23001-8:2016 Standards verwendet werden. Diese Komponente und jede nachfolgende Komponente ist optional. Die möglichen Werte der Farbprimärkomponente sind:
|
||||||||||||||||||||||||||||||||||
tc |
Eine zweistellige Ganzzahl, die angibt, welche transferCharacteristics für das Video gelten.
Dieser Wert stammt aus Abschnitt 8.2 von ISO/IEC 23001-8:2016 und gibt die Übertragungscharakteristik an, die verwendet wird, wenn die decodierte Farbe an das Ausgaberenderziel angepasst werden soll.
|
||||||||||||||||||||||||||||||||||
mc |
Der zweistellige Wert der 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 verwendet werden soll, wenn vom nativen Primärrot, -blau und -grün zur Luminanz- und Chrominanzsignalen gemappt werden soll.
Diese Koeffizienten werden wiederum mit den Gleichungen verwendet, die sich im selben Abschnitt befinden.
|
||||||||||||||||||||||||||||||||||
FF |
Gibt an, ob der Schwarzwert und Farbbereich jeder Farbkomponente auf den legalen Bereich beschränkt werden sollen.
Für 8-Bit Farbproben ist der legale Bereich 16-235.
Ein Wert von 00 gibt an, dass diese Einschränkungen angewendet werden sollen, während ein Wert von 01 den kompletten Bereich möglicher Werte für jede Komponente erlaubt, selbst wenn die resultierende Farbe außerhalb der Grenzen des Farbsystems liegt.
|
Beispiele
video/webm;codecs="vp09.02.10.10.01.09.16.09.01,opus"
-
VP9-Video, Profil 2 Stufe 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-konstante Luminanz-Farbmatrix und vollständiger Bereichs-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, haben die gleiche Syntax für den codecs
Parameter. Zu diesen Medientypen gehören MPEG-4 (und tatsächlich das QuickTime Dateiformat, auf dem MPEG-4 basiert) sowie 3GP. Sowohl Video- als auch Audiotracks können mit dem codecs
Parameter unter 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 encapsuliert sind |
Jeder Codec, der durch den codecs
Parameter beschrieben wird, kann entweder als Name des Containers (3gp
, mp4
, quicktime
, etc.) oder als Containername plus weiterer Parameter zur Spezifikation des Codecs und seiner Konfiguration angegeben werden. Jeder Eintrag in der Codecliste 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 Punkttrennzeichen (.
), gefolgt vom Object Type Indication (OTI) Wert für das spezifische Datenformat. Für die meisten Codecs ist das OTI eine zweistellige Hexadezimalzahl; für AVC (H.264) jedoch sechs hexadezimale Ziffern.
Somit sehen die Syntaxen für jeden der unterstützten Codecs folgendermaßen aus:
cccc[.pp]*
(Generisches ISO BMFF)-
Wo
cccc
der vierstellige ID für den Codec ist undpp
die Stelle ist, an der null oder mehr zweistellige codierte Eigenschaftswerte stehen. mp4a.oo[.A]
(MPEG-4 Audio)-
Wo
oo
der OTI-Wert ist, der den Inhalt des Mediums genauer beschreibt undA
ist die einstellige Audio-OTI. Die möglichen Werte finden Sie auf der Object-Types-Seite der MP4-Registrierungsbehörde Website. Zum Beispiel ist Opus-Audio in einer MP4-Dateimp4a.ad
. Weitere Details finden Sie unter MPEG-4 Audio. mp4v.oo[.V]
(MPEG-4 Video)-
Hier ist
oo
wieder der OTI, der die Inhalte genauer beschreibt, währendV
der einstellige Video-OTI ist. avc1[.PPCCLL]
(AVC Video)-
PPCCLL
sind sechs hexadezimale Ziffern, die die Profilnummer (PP
), Constraint-Set-Flags (CC
) und Level (LL
) spezifizieren. Siehe AVC Profile für die möglichen Werte vonPP
.Das Constraint-Set-Flags-Byte besteht aus einstelligen Booleschen Flags, wobei das bedeutendste Bit die Flagge 0 ist (oder
constraint_set0_flag
, in einigen Ressourcen) und jedes folgende 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 variieren je nach verwendetem Profil.Der Level ist eine Festkommazahl, so bedeutet ein Wert von
14
(dezimal 20) Level 2.0, während ein Wert von3D
(dezimal 61) Level 6.1 bedeutet. Generell gilt: Je höher die Levelnummer, desto mehr Bandbreite verwendet der Stream und desto größer sind die maximal unterstützten Videodimensionen.
AVC Profile
Die folgenden Profile sind die AVC-Profile und deren Profilnummern für die Verwendung im codecs
Parameter sowie der Wert, der für die Constraints-Komponente CC
anzugeben ist.
Profil | Nummer (Hex) | Constraints-Byte |
---|---|---|
Constrained Baseline Profile (CBP) CBP ist vorwiegend eine Lösung für Szenarien, in denen Ressourcen beschränkt sind oder der Ressourceneinsatz kontrolliert werden muss, um das Risiko einer schlechten Medienleistung zu minimieren. | 42 |
40 |
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Schutz gegen Datenverlust und Wiederherstellungsfähigkeiten. Wird nicht mehr so häufig verwendet, seit CBP eingeführt wurde. Alle CBP-Streams gelten ebenfalls als BP-Streams. | 42 |
00 |
Extended Profile (XP) Entwickelt für das Streamen von Videos über das Netzwerk, mit hoher Kompressionsfähigkeit und weiteren Verbesserungen der Datenrobustheit und des Streamwechsels. | 58 |
00 |
Main Profile (MP) Das Profil, das für standardauflösendes digitales Fernsehen verwendet wird, das im MPEG-4-Format ausgestrahlt wird. Nicht für hochauflösendes Fernsehen verwendet. Die Bedeutung dieses Profils hat seit der Einführung des High Profiles – das 2004 für HDTV-Anwendungen hinzugefügt wurde – nachgelassen. | 4D |
00 |
High Profile (HiP) Derzeit wird HiP vorwiegend für die Übertragung und Disc-basierte HD-Videos eingesetzt; es wird sowohl für HDTV-Ausstrahlungen als auch für Blu-Ray-Videos verwendet. | 64 |
00 |
Progressive High Profile (PHiP) Im Wesentlichen High Profile ohne Unterstützung für die Fallcodierung. | 64 |
08 |
Constrained High Profile PHiP, jedoch ohne Unterstützung für vorhergesagte Bi-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 auf Hi10P, indem Unterstützung für 4:2:2 Chroma-Subsampling sowie bis zu 10 Bits pro Farbkomponente hinzugefügt wird. | 7A |
00 |
High 4:4:4 Predictive Profile (Hi444PP) Neben den in Hi422P enthaltenen Fähigkeiten 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 effizientes verlustfreies Regionscodierung. Die Option, jeden Rahmen als drei separate Farbkanäle zu kodieren (d.h. die Daten jeder Farbe werden gespeichert, als wären sie ein einzelner monochromatischer Rahmen). | F4 |
00 |
High 10 Intra Profile High 10 eingeschränkt auf All-Intra-Frame-Nutzung. Vorwiegend in professionellen Anwendungen eingesetzt. | 6E |
10 |
High 4:2:2 Intra Profile Das Hi422-Profil ohne Unterstützung für Intra-Frames. | 7A |
10 |
High 4:4:4 Intra Profile Das High 4:4:4 Profil eingeschränkt auf die Verwendung von Intra-Frames. | F4 |
10 |
CAVLC 4:4:4 Intra Profile Das High 4:4:4 Profil, eingeschränkt auf die All-Intra-Nutzung und nur die Verwendung von CAVLC-Entropiecodierung. | 44 |
00 |
Scalable Baseline Profile Das auf dem AVC Constrained Baseline Profile basierende SVC Baseline Profile ist primär für Videokonferenzen sowie für Überwachungs- und mobile Anwendungen vorgesehen. Der Basis-Layer innerhalb des Streams wird auf hohem Qualitätsniveau bereitgestellt, mit einer Anzahl von sekundären Substreams, die alternative Formen des gleichen Videos für verschiedene eingeschränkte Umgebungen bieten. Diese können jede Kombination aus reduzierter Auflösung, reduzierter Bildrate oder erhöhten Komprimierungsstufen umfassen. | 53 |
00 |
Scalable Constrained Baseline Profile Primär für Echtzeit-Kommunikationsanwendungen verwendet. Wird noch nicht von WebRTC unterstützt, aber eine Erweiterung für die WebRTC-API um SVC zu ermöglichen ist in Entwicklung. | 53 |
04 |
Scalable High Profile Vorwiegend für Einsatz in Übertragungs- und Streaming-Anwendungen gedacht. Der Basis- (oder höchstwertige) Layer muss dem AVC High Profile entsprechen. | 56 |
00 |
Scalable Constrained High Profile Ein Subset des Scalable High Profile, hauptsächlich für Echtzeitkommunikation gedacht. | 56 |
04 |
Scalable High Intra Profile Primär nur für Produktionsanwendungen nützlich, unterstützt dieses Profil nur die All-Intra-Nutzung. | 56 |
20 |
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video durch zwei Darstellungen der Szene (linkes Auge und rechtes Auge). Bietet ansonsten die gleichen Funktionen wie das High Profile. | 80 |
00 |
Multiview High Profile Unterstützt zwei oder mehr Ansichten unter Verwendung von sowohl temporaler als auch MVC-Inter-View-Prädiktion. Unterstützt Keine Field-Bilder oder Makroblock-adaptive Frame-Field-Codierung. | 76 |
00 |
| Multiview Depth High Profile Basierend auf dem High Profile, zu dem der Haup
tstream gehören 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 sein:
mp4a.oo[.A]
Hier befindet sich oo
das zweistellige hexadezimale Object Type Indication, das die Codeklasse beschreibt, die für die Medien verwendet wird. Die OTIs werden von der MP4 Registration Authority zugewiesen, die eine Liste der möglichen OTI-Werte verwaltet. Ein spezieller Wert ist 40
; dies gibt an, dass das Medium MPEG-4 Audio (ISO/IEC 14496 Teil 3) ist. Um noch spezifischer zu werden, kann eine dritte Komponente – der Audio Object Type – für OTI 40
hinzugefügt werden, um den Typ auf einen spezifischen Subtyp von MPEG-4 einzugrenzen.
Der Audio Object Type wird als ein- oder zweistellige Dezimalzahl (im Gegensatz zu den meisten anderen Werten im codecs
Parameter, die hexadezimal sind) angegeben. Zum Beispiel hat MPEG-4s AAC-LC einen Audio Object Type Nummer von 2
, also ist der vollständige codecs
Wert, der AAC-LC repräsentiert, mp4a.40.2
.
Somit kann ER AAC LC, dessen Audio Object Type 17 ist, unter Verwendung des vollständigen codecs
Werts mp4a.40.17
repräsentiert werden. Einstellige Werte können entweder als einzelne Ziffer (was die beste Wahl ist, da es am breitesten kompatibel ist) oder mit einem führenden Null ergänzt, um sie auf zwei Stellen zu vervollständigen, wie mp4a.40.02
.
Hinweis: Die Spezifikation forderte ursprünglich, dass die Audio Object Type Nummer in der dritten Komponente nur eine Dezimalziffer sein darf. Ergänzungen zur Spezifikation erweiterten jedoch den Bereich dieser Werte weit über eine Dezimalziffer hinaus, so dass die dritte Komponente jetzt entweder eine oder zwei Stellen haben kann. Das Auffüllen von Werten unter 10 mit einer führenden 0
ist optional. Ältere Implementierungen von MPEG-4-Codecs unterstützen möglicherweise keine zweistelligen Werte, daher maximiert die Verwendung einer einzelnen Stelle, wenn möglich, die Kompatibilität.
Die Audio Object Types sind in ISO/IEC 14496-3 Unternummer 1, Abschnitt 1.5.1 definiert. Die Tabelle unten enthält eine grundlegende Liste der Audio Object Types und bietet im Fall der gebräuchlicheren Objektarten eine Liste der unterstützenden Profile, aber Sie sollten die Spezifikation für Details nachschlagen, wenn Sie mehr über das Innenleben eines bestimmten MPEG-4-Audio-Typs wissen müssen.
ID | Audio-Objecttyp | 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 |
Main Synthetic | Main, Synthetic |
14 |
Wavetable Synthesis | |
15 |
General MIDI | |
16 |
Algorithmic Synthesis and Audio Effects | |
17 |
ER AAC LC (Fehler-Resiliente AAC Low-Complexity) | HQ, Mobile Internetworking |
18 |
Reserviert | |
19 |
ER AAC LTP (Fehler-Resiliente AAC Long Term Prediction) | HQ |
20 |
ER AAC Scalable (Fehler-Resiliente AAC Scalable) | Mobile Internetworking |
21 |
ER TwinVQ (Fehler-Resiliente TwinVQ) | Mobile Internetworking |
22 |
ER BSAC (Fehler-Resiliente Bit-Sliced Arithmetic Coding) | Mobile Internetworking |
23 |
ER AAC LD (Fehler-Resiliente AAC Low-Delay; verwendet für Zwei-Wege Kommunikation) | LD, Mobile Internetworking |
24 |
ER CELP (Fehler-Resiliente Code-Excited Linear Prediction) | HQ, LD |
25 |
ER HVXC (Fehler-Resiliente Harmonic Vector Excitation Coding) | LD |
26 |
ER HILN (Fehler-Resiliente Harmonic and Individual Line plus Noise) | |
27 |
ER Parametric (Fehler-Resiliente Parametric) | |
28 |
SSC (Sinuswellencodierung) | |
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 (Direkter Datenstrom Transfer) | |
36 |
ALS (Audio Verlustfrei) | |
37 |
SLS (Skalierbarer Verlustfreier) | |
38 |
SLS Nicht-Kern (Skalierbarer Verlustfreier Nicht-Kern) | |
39 |
ER AAC ELD (Fehler-Resiliente AAC Erweitert Low Delay) | |
40 |
SMR Einfach (Symbolische Musik Darstellungs Einfach) | |
41 |
SMR Main (Symbolische Musik Darstellungs Main) | |
42 |
Reserviert | |
43 |
SAOC (Räumliches Audio Objekt Kodierung) 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 für einen WebM codecs
Parameter ist das Auflisten eines oder mehrerer der vier WebM-Codecs nach Name, getrennt durch Kommas. Die folgende Tabelle zeigt einige Beispiele:
MIME-Typ | Beschreibung |
---|---|
video/webm;codecs="vp8" |
Ein WebM-Video mit VP8-Video; kein Audio angegeben. |
video/webm;codecs="vp9" |
Ein WebM-Video mit VP9-Video. |
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 auch, werden jedoch nicht empfohlen.
Verwendung des codecs Parameters
Sie können den codecs
Parameter in einigen Situationen verwenden. Zunächst können Sie ihn mit dem <source>
Element verwenden, wenn Sie ein <audio>
oder <video>
Element erstellen, um dem Browser eine Gruppe von Optionen zu bieten, aus denen er das Format des Mediums auswählen kann, das dem Benutzer im Element präsentiert wird.
Sie können den Codecs-Parameter auch verwenden, wenn Sie einen MIME-Medientyp an die Methode MediaSource.isTypeSupported()
angeben; diese Methode gibt einen Booleschen Wert zurück, der angibt, ob das Medium wahrscheinlich auf dem aktuellen Gerät funktioniert.
Siehe auch
- Webmedien-Technologien
- Das
<source>
Element, Kind der<audio>
und<video>
Elemente - Leitfaden zu Medientypen und -formaten im Web
- Leitfaden zu Audiocodecs, die im Web verwendet werden
- Leitfaden zu Videocodecs, die im Web verwendet werden
- Von WebRTC verwendete Codecs
- Den richtigen HTML codecs Parameter für ein AV1-Video erhalten