Codecs in common media types
Auf einer grundlegenden Ebene können Sie den Typ einer Mediendatei durch einen einfachen MIME Typ angeben, wie video/mp4
oder audio/mpeg
. Viele Medientypen – besonders diejenigen, die Videospuren unterstützen – können jedoch von der Möglichkeit profitieren, das Format der darin enthaltenen Daten genauer zu beschreiben. Beispielsweise sagt die bloße Beschreibung eines Videos in einer MPEG-4 Datei mit dem MIME-Typ video/mp4
nichts über das tatsächliche Format der darin enthaltenen Medien aus.
Aus diesem Grund kann der codecs
-Parameter zum MIME-Typ hinzugefügt werden, der Mediendaten beschreibt. Damit können containerspezifische Informationen bereitgestellt werden. Diese Informationen können Dinge wie das Profil des Video-Codecs, den Typ, der für die Audio-Spuren verwendet wird, usw. beinhalten.
Dieser Leitfaden untersucht kurz die Syntax des codecs
-Parameters im Medientyp und wie er mit der MIME-Typ-Zeichenfolge verwendet wird, um Details über den Inhalt von Audio- oder Videomedien bereitzustellen, die über die Angabe des Containertyps hinausgehen.
Containerformat-MIME-Typen
Der MIME-Typ für ein Containerformat wird ausgedrückt, indem der Medientyp (audio
, video
, etc.) angegeben wird, gefolgt von einem Schrägstrich (/
), und dann das Format, mit dem die Medien enthalten sind:
audio/mpeg
-
Eine Audiodatei, die den MPEG Dateityp verwendet, wie 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 vermerkt, wurde dieses Format einst häufig im Web verwendet, ist aber nicht mehr üblich, da ein Plugin erforderlich war, um es zu verwenden.
Jedoch ist jeder dieser MIME-Typen vage. All diese Dateitypen unterstützen eine Vielzahl von Codecs, und diese Codecs können eine beliebige Anzahl von Profilen, Ebenen und anderen Konfigurationsfaktoren haben. Aus diesem Grund möchten Sie möglicherweise den codecs
-Parameter zusammen mit dem Medientyp einschließen.
Grundlegende Syntax
Sie können den codecs
-Parameter zum Medientyp hinzufügen. Dazu fügen Sie ein Semikolon (;
) hinzu, gefolgt von codecs=
und dann der Zeichenkette, die das Format der Inhalte der Datei beschreibt. Einige Medientypen lassen Sie nur die Namen der zu verwendenden Codecs angeben, während andere Ihnen erlauben, auch verschiedene Einschränkungen dieser Codecs anzugeben. Sie können mehrere Codecs angeben, indem Sie sie 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, Main Profile, Level 4.2.
Wie bei jedem MIME-Typ-Parameter muss codecs
zu codecs*
geändert werden (beachten Sie das Sternchenzeichen, *
), wenn eine der Eigenschaften des Codecs Sonderzeichen verwendet, die gemäß RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions prozentkodiert sein müssen. Sie können die JavaScript-Funktion encodeURI()
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 Liste alle für die Inhalte der Datei verwendeten Codecs enthalten. Die Liste kann auch Codecs enthalten, die nicht in der Datei enthalten sind.
Codec-Optionen nach Container
Die untenstehenden Container unterstützen erweiterte Codec-Optionen in ihren codecs
-Parametern:
Mehrere der obenstehenden Links führen zum selben Abschnitt; das liegt daran, dass diese Medientypen alle auf dem ISO Base Media File Format (ISO BMFF) basieren und somit die gleiche Syntax haben.
AV1
Die Syntax des codecs
-Parameters für AV1 wird in der Spezifikation AV1 Codec ISO Media File Format Binding im Abschnitt 5: Codecs Parameter String definiert.
av01.P.LLT.DD[.M.CCC.cp.tc.mc.F]
Hinweis: Auf Chromium-basierten Browsern wird jede Teilmenge der optionalen Parameter akzeptiert (anstatt alle oder keine, wie es die Spezifikation verlangt).
Die Komponenten dieser Codec-Parameterzeichenkette werden in der folgenden Tabelle detaillierter beschrieben. Jede Komponente hat eine feste Anzahl an 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-Format umgewandelt wird, wobei X = 2 + (LL >> 2) und Y = LL & 3 .
Für Details siehe Anhang A, Abschnitt 3 in der AV1-Spezifikation.
|
||||||||||||||||||||
T |
Der einstellige Geschwindigkeitsanzeiger. Für die Main-Tier (seq_tier entspricht 0) ist dieser Buchstabe M .
Für die High-Tier (seq_tier ist 1) ist dieser Buchstabe H .
Die High-Tier ist nur für Level 4.0 und höher verfügbar.
|
||||||||||||||||||||
DD |
Die zweistellige bit-Tiefe der Komponenten. Dieser Wert muss 8, 10 oder 12 sein; welche Werte gültig sind, variiert abhängig vom Profil und anderen Eigenschaften. | ||||||||||||||||||||
M |
Die einstellige monochrome Flag; wenn diese 0 ist, umfasst das Video die U- und V-Ebenen zusätzlich zur Y-Ebene. Andernfalls sind die Videodaten ausschließlich in der Y-Ebene enthalten und sind daher monochrom. Weitere Informationen zur Funktionsweise des YUV-Farbsystems finden Sie unter YUV. Der Standardwert ist 0 (nicht monochrom). | ||||||||||||||||||||
CCC |
Die dritte Ziffer in Der Standardwert ist |
||||||||||||||||||||
cp |
Der zweistellige Wert color_primaries gibt das vom Medium verwendete Farbsystem an.
Zum Beispiel ist BT.2020/BT.2100 Farbe, wie sie für HDR-Video verwendet wird, 09 .
Die Informationen hierzu – und für jede der verbleibenden Komponenten – finden Sie im Abschnitt über Farbkonfigurationssemantik der AV1-Spezifikation.
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
tc |
Der zweistellige Wert transfer_characteristics . Dieser Wert definiert die Funktion, die verwendet wird, um das Gamma (bekannt als "optische elektronische Transferfunktion" im Fachjargon) von der Quelle zum Display zu mappen.
Beispielsweise ist 10-Bit BT.2020 14 .
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
mc |
Die zweistellige Konstante matrix_coefficients wählt die Matrixkoeffizienten aus, die verwendet werden, um die Rot-, Blau- und Grüntöne in Luminanz- und Chrominanzsignale umzuwandeln.
Beispielsweise werden die Standardkoeffizienten, die für BT.709 verwendet werden, mit dem Wert 01 angegeben.
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
F |
Ein einstelliger Indikator, der anzeigt, ob die Farbe den vollen Bereich der möglichen Werte verwenden darf (1 ), oder auf die als legal angesehenen Werte für die angegebene Farbdarstellung beschränkt werden sollte (also die Studio-Swing-Darstellung).
Der Standard ist 0 (Verwendung der Studio-Swing-Darstellung).
|
Alle Felder ab M
(monochrome Flag) sind optional; Sie können das Einbeziehen von Feldern an irgendeinem Punkt beenden (aber nicht willkürlich Felder 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 Profil, Level 5.3, Main-Tier, 10 Bit pro Farbkomponente, 4:2:2 Chroma-Subsampling mit ITU-R BT.2100 Farbprimonie, Transfer-Eigenschaften und YCbCr-Farbmatrix. Die Studio-Swing-Darstellung wird angegeben.
av01.0.15M.10
-
AV1 Main Profile, Level 5.3, Main-Tier, 10 Bit pro Farbkomponente. Die verbleibenden Eigenschaften stammen aus den Standards: 4:2:0 Chroma-Subsampling, BT.709 Farbprimonie, Transfer-Eigenschaften und Matrixkoeffizienten. Studio-Swing-Darstellung.
VP9
ISO Base Media File Format Syntax
Die Syntax des codecs
-Parameters für VP9 wird 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 in dem Container verwendeten Codec angibt, worauf eine Serie von durch Punkt (.
) getrennten zweistelligen Werten folgt.
cccc.PP.LL.DD cccc.PP.LL.DD.CC.cp.tc.mc.FF
Die ersten vier Komponenten sind obligatorisch; alles ab CC
(Chroma-Subsampling) ist optional, aber alles oder nichts. Jede dieser Komponenten wird in der folgenden Tabelle beschrieben. Nach der Tabelle finden sich 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, mit führenden Nullen aufgefüllt, falls nötig, um genau zwei Ziffern zu haben.
|
||||||||||||||||||||||||||||||||||
LL |
Die zweistellige Levelnummer.
Die Levelnummer ist eine Festkommanotation, bei der die erste Ziffer die Einerstelle ist und die zweite Ziffer die Zehntelstelle darstellt.
Zum Beispiel ist Level 3 gleich 30 und Level 6,1 gleich 61 .
|
||||||||||||||||||||||||||||||||||
DD |
Die Bittiefe der Luma- und Farbkomponentenwerte; zulässige Werte sind 8, 10 und 12. | ||||||||||||||||||||||||||||||||||
CC |
Ein zweistelliger Wert, der angibt, welches Chroma-Subsampling-Format zu verwenden ist. Die folgende Tabelle listet die zulässigen Werte auf; weitere Informationen zu diesem Thema und anderen finden Sie unter Chroma-Subsampling im "Digitale Video-Konzepte" Leitfaden.
|
||||||||||||||||||||||||||||||||||
cp |
Ein zwei-Bit-Integer-Wert, der angibt, welche der Farbprimärfarben aus Abschnitt 8.1 der ISO/IEC 23001-8:2016 Norm. Diese Komponente und jede Komponente, die danach kommt, ist optional. Die möglichen Werte der Farbprimärfarben-Komponente sind:
|
||||||||||||||||||||||||||||||||||
tc |
Ein zwei-Bit-Integer-Wert, der die
transferCharacteristics für das Video angibt.
Dieser Wert stammt aus Abschnitt 8.2 des ISO/IEC 23001-8:2016, und gibt die Übertragungsmerkmale an, die verwendet werden sollen, wenn das dekodierte Farbsignal an das Ziel angepasst wird.
|
||||||||||||||||||||||||||||||||||
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 Koordinaten verwendet werden sollen, wenn von den nativen Rot-, Blau- und Grüntönen zu den Luma- und Chromasignalen gewechselt wird.
Diese Koordinaten werden zusammen mit den in diesem Abschnitt dargestellten Gleichungen verwendet.
|
||||||||||||||||||||||||||||||||||
FF |
Gibt an, ob der Schwarzpegel und der Farbbereich jeder Farbkomponente auf den legalen Bereich eingeschränkt werden sollen.
Für 8-Bit-Farbproben gilt der legale Bereich von 16-235.
Ein Wert von 00 gibt an, dass diese Einschränkungen durchgesetzt werden sollten, während ein Wert von 01 den vollen Bereich möglicher Werte für jede Komponente zulässt, auch 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 Level 1.0, mit 10-Bit YUV-Inhalten, die 4:2:0 Chroma-Subsampling verwenden, BT.2020 Primärfarben, ST 2084 EOTF (HDR SMPTE), BT.2020 nicht-constante Luminanz-Farbmatrix und Vollbereichs-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 Audiotracks können mit dem codecs
-Parameter 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-audiovisuelles Medium, das in MPEG-4 gekapselt ist |
Jeder Codec, der durch den codecs
-Parameter beschrieben wird, kann entweder als Name des Containers (3gp
, mp4
, quicktime
, etc.) oder als Containername plus zusätzliche Parameter zur Angabe des Codec und seiner Konfiguration spezifiziert werden. Jeder Eintrag in der Codekliste kann eine Anzahl von Komponenten enthalten, getrennt durch Punkte (.
).
Die Syntax für den Wert von codecs
variiert je nach Codec; jedoch beginnt sie immer mit der vierstelligen Kennung des Codecs, einem Trennzeichen (Punkt .
), gefolgt von dem Object Type Indication (OTI) Wert für das spezifische Datenformat. Für die meisten Codecs ist das OTI eine zweistellige hexadezimale Zahl; jedoch sind es sechs hexadezimale Stellen für AVC (H.264).
Dementsprechend sehen die Syntaxen für jeden der unterstützten Codecs so aus:
cccc[.pp]*
(Generische ISO BMFF)-
Wo
cccc
die vierstellige ID für den Codec ist undpp
der Ort ist, an dem null oder mehr zweistellige kodierte Eigenschaftswerte untergebracht werden. mp4a.oo[.A]
(MPEG-4 Audio)-
Wo
oo
der Object Type Indication Wert ist, der die Inhalte des Mediums genauer beschreibt, undA
der einstellig Audio OTI ist. Die möglichen Werte für die OTI sind auf der Objekttypen-Seite der MP4 Registrierungsstelle Webseite zu finden. Ein Beispiel: Opus-Audio in einer MP4-Datei istmp4a.ad
. Weitere Details finden Sie unter MPEG-4 Audio. mp4v.oo[.V]
(MPEG-4 Video)-
Hier ist
oo
erneut das OTI, das die Inhalte genauer beschreibt, währendV
der einstellig Video OTI ist. avc1[.PPCCLL]
(AVC Video)-
PPCCLL
sind sechs hexadezimale Stellen, 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 höchstwertige Bit als Flag 0 (oder
constraint_set0_flag
, in einigen Ressourcen) bezeichnet wird, und jedes nachfolgende Bit um eins höher nummeriert wird. Derzeit werden nur Flags 0 bis 2 verwendet; die anderen fünf Bits müssen Null sein. Die Bedeutungen der Flags hängen vom verwendeten Profil ab.Der 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 gilt: Je höher die Levelnummer, desto mehr Bandbreite benötigt der Stream und desto höher sind die maximal unterstützten Videodimensionen.
AVC-Profile
Die folgenden AVC-Profile und ihre Profilnummern für die Verwendung im codecs
-Parameter sowie den Wert zur Angabe der Constraint-Komponente, CC
.
Profil | Nummer (Hex) | Constraint-Byte |
---|---|---|
Constrained Baseline Profile (CBP) CBP ist vor allem eine Lösung für Szenarien, in denen Ressourcen beschränkt sind oder der Ressourcenverbrauch so gesteuert werden muss, dass die Wahrscheinlichkeit minimiert wird, dass die Medien schlecht abschneiden. | 42 |
40 |
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Schutz gegen Datenverlust und Wiederherstellungsfähigkeiten. Dies wird nicht mehr so oft verwendet wie früher, seit CBP eingeführt wurde. Alle CBP-Streams werden ebenfalls als BP-Streams betrachtet. | 42 |
00 |
Extended Profile (XP) Entwickelt für die Übertragung von Video über das Netzwerk mit hoher Komprimierungsfähigkeit und weiteren Verbesserungen bei Datenrobustheit und Streamwechseln. | 58 |
00 |
Main Profile (MP) Das Profil, das für digitale Standard-Definition-Fernsehsendungen im MPEG-4-Format verwendet wird. Nicht verwendet für hochauflösende Fernsehübertragungen. Die Bedeutung dieses Profiles ist seit der Einführung des High-Profiles — das 2004 für HDTV-Zwecke hinzugefügt wurde — verblasst. | 4D |
00 |
High Profile (HiP) Derzeit ist das High Profile das primäre Profil, das für HD-Videoübertragungen und für Blu-Ray-Video verwendet wird. | 64 |
00 |
Progressive High Profile (PHiP) Eigentlich High Profile ohne Unterstützung für Feldcodierung. | 64 |
08 |
Constrained High Profile PHiP, jedoch ohne Unterstützung für bi-prädiktive Schnitte ("B-Slices"). | 64 |
0C |
High 10 Profile (Hi10P) High Profile, jedoch mit Unterstützung für bis zu 10 Bit pro Farbkomponente. | 6E |
00 |
High 4:2:2 Profile (Hi422P) Erweitert Hi10P um 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 in Hi422P enthaltenen Funktionen fügt Hi444PP Unterstützung für 4:4:4 Chroma-Subsampling hinzu (bei dem keine Farbinformationen verworfen werden). Auch Unterstützung für bis zu 14 Bit pro Farbprobe und effizientes verlustfreies Region-Encoding. Die Option, jedes Bild als drei separate Farbebenen zu kodieren (d. h., die Daten jeder Farbe werden gespeichert, als wäre sie ein einzelner monochromer Rahmen). | F4 |
00 |
High 10 Intra Profile High 10 beschränkt auf ausschließlich intra-Frame-Nutzung. Vor allem für professionelle Anwendungen verwendet. | 6E |
10 |
High 4:2:2 Intra Profile Das Hi422 Profil mit ausschließlich intra-Frame-Nutzung. | 7A |
10 |
High 4:4:4 Intra Profile Das High 4:4:4 Profil beschränkt auf die Verwendung nur von Intra-Frames. | F4 |
10 |
CAVLC 4:4:4 Intra Profile Das High 4:4:4 Profil beschränkt auf die rein intra-Frame Nutzung und die ausschließliche Verwendung von CAVLC Entropie-Codierung. | 44 |
00 |
Scalable Baseline Profile Das für Videokonferenzen sowie Überwachungs- und mobile Zwecke gedachte SVC Baseline Profile basiert auf dem AVC Constrained Baseline Profil. Der Basiscodierlayer im Stream wird mit hoher Qualität bereitgestellt, wobei eine Anzahl von sekundären Substreams alternative Formen desselben Videos für die Nutzung in verschiedenen eingeschränkten Umgebungen bieten. Diese können Kombinationen aus reduzierter Auflösung, reduzierter Bildrate oder erhöhten Kompressionsniveaus umfassen. | 53 |
00 |
Scalable Constrained Baseline Profile Diese Profile wird hauptsächlich für Anwendungen der Echtzeitkommunikation verwendet. Es wird gegenwärtig nicht von WebRTC unterstützt, aber eine Erweiterung der WebRTC-API um SVC zu erlauben befindet sich in der Entwicklung. | 53 |
04 |
Scalable High Profile Hauptsächlich zur Verwendung in Anwendungen für den Rundfunk und Streaming konzipiert. Die Basis (oder höchste Qualitäts-) Schicht muss dem AVC High Profile entsprechen. | 56 |
00 |
Scalable Constrained High Profile Ein Teil des Scalable High Profiles, das hauptsächlich für Echtzeitkommunikation konzipiert ist. | 56 |
04 |
Scalable High Intra Profile Nur für Produktionsanwendungen wirklich nützlich, unterstützt dieses Profil nur All-Intra-Nutzung. | 56 |
20 |
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video mit zwei Darstellungen der Szene (linkes und rechtes Auge). Ansonsten bietet es die gleichen Funktionen wie das High Profile. | 80 |
00 |
Multiview High Profile Unterstützt zwei oder mehr Ansichten unter Verwendung sowohl zeitlicher als auch mvc Inter-View-Prädiktion. Unterstützt keine Feldbilder oder makroblock-adaptive Frame-Field-Codierung. | 76 |
00 |
Multiview Depth High Profile Basierend auf dem High Profile, dem der Hauptunterm Strom entspricht. Die restlichen Unterm Ströme müssen dem Stereo High Profil entsprechen. | 8A |
00 |
MPEG-4 Audio
Wenn der Wert eines Eintrags in der codecs
Liste mit mp4a
beginnt, sollte die Syntax des Wertes wie folgt aussehen:
mp4a.oo[.A]
Hier ist oo
der zweistellige hexadezimale Object Type Indication, der angibt, welche Codec-Klasse für das Medium verwendet wird. Die OTIs werden von der MP4 Registrierungsstelle zugewiesen, die eine Liste der möglichen OTI-Werte führt. Ein spezieller Wert ist 40
; dieser zeigt an, dass die Medien MPEG-4 Audio (ISO/IEC 14496 Teil 3) sind. Um noch spezifischer zu werden, wird ein drittes Element – der Audio Object Type – hinzugefügt, wenn das OTI 40
ist, um den Typ auf einen bestimmten Subtyp von MPEG-4 einzugrenzen.
Der Audio Object Type wird als ein- oder zweistelliger dezimaler Wert (im Gegensatz zu den meisten anderen Werten im codecs
Parameter, die hexadezimal sind) angegeben. Zum Beispiel hat MPEG-4's AAC-LC die Audio-Objekttypnummer 2
, daher ist der vollständige codecs
Wert, der AAC-LC repräsentiert, mp4a.40.2
.
Daher kann ER AAC LC, dessen Audio-Objekttyp 17
ist, mit dem vollständigen codecs
Wert mp4a.40.17
angezeigt werden. Einstellige Werte können entweder als eine Ziffer (was die beste Wahl ist, da sie die weitestgehende Kompatibilität bietet) oder mit einer führenden Null, die sie auf zwei Ziffern aufpolstert, wie mp4a.40.02
, angegeben werden.
Hinweis: Die Spezifikation verlangte ursprünglich, dass die Audio-Objekttypnummer im dritten Element nur eine Dezimalziffer sein sollte. Mit der Zeit haben jedoch Änderungen der Spezifikation den Bereich dieser Werte erheblich über die eine Dezimalziffer hinaus erweitert, sodass der dritte Parameter jetzt ein- oder zweistellig sein kann. Padding 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 wird die Kompatibilität maximiert, wenn eine Ziffer verwendet werden kann.
Die Audio-Objekttypen sind in ISO/IEC 14496-3 Unterabschnitt 1, Abschnitt 1.5.1 definiert. Die Tabelle unten bietet eine grundlegende Liste der Audio-Objekttypen und im Falle der häufigeren Objekttypen eine Liste der Profile, die sie unterstützen, aber Sie sollten auf die Spezifikation für Details verweisen, wenn Sie mehr über die inneren Funktionsweisen eines bestimmten MPEG-4 Audio Typs wissen müssen.
ID | Audio-Objekttypen | 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 (Codierung für ultra-niedrige Bitraten) | 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 (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 Zweirichtungs- 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 (Sinusoidal Coding) | |
29 |
PS (Parametric 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 folgende |
Reserviert |
WebM
Die grundlegende Form für einen WebM codecs
-Parameter ist es, einen oder mehrere der vier WebM-Codecs namentlich aufzulisten und durch Kommas zu trennen. Die nachfolgende 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 auch, werden jedoch nicht empfohlen.
Verwendung des codecs
-Parameters
Den codecs
-Parameter können Sie in wenigen Situationen verwenden. Erstens können Sie ihn mit dem <source>
Element nutzen, wenn Sie ein <audio>
oder <video>
Element erstellen, um eine Gruppe von Optionen für den Browser festzulegen, aus denen beim Auswählen des im Element anzuzeigenden Medienformats gewählt wird.
Sie können den codecs
-Parameter auch verwenden, wenn Sie einen MIME-Medientyp an die Methode MediaSource.isTypeSupported()
übergeben; diese Methode gibt einen booleschen Wert zurück, der angibt, ob die Medien auf dem aktuellen Gerät voraussichtlich funktionieren.
Siehe auch
- Web-Medientechnologien
- 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
- Codecs, die von WebRTC verwendet werden
- Erhalten des korrekten HTML-Codecs-Parameters für ein AV1-Video