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
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.
Komponente | Details | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P |
Die einstellige Profilnummer:
|
||||||||||||||||||||
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 |
Die dritte Ziffer in Der Standardwert ist |
||||||||||||||||||||
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.
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 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.
|
||||||||||||||||||||||||||||||||||
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:
|
||||||||||||||||||||||||||||||||||
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 undpp
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, undA
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-Dateimp4a.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ährendV
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 vonPP
.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 von3D
(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.
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 |
10 – 11 |
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
- Web-Medientechnologien
- Das
<source>
-Element, Kind der<audio>
- und<video>
-Elemente - Leitfaden zu Medientypen und Formaten im Web
- Leitfaden zu Audio-Codecs, die im Web verwendet werden
- Leitfaden zu Video-Codecs, die im Web verwendet werden
- Codecs, die von WebRTC verwendet werden
- Das korrekte HTML-Codec-Parameter für ein AV1-Video erhalten