Codecs in üblichen 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 solche, die Videospuren unterstützen – können jedoch von der Möglichkeit profitieren, das Datenformat innerhalb dieser Dateien 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, welches Format das tatsächliche Medium innerhalb davon einnimmt.
Aus diesem Grund kann der codecs
Parameter zum MIME-Typ hinzugefügt werden, der Medieninhalte beschreibt. Damit können containerspezifische Informationen bereitgestellt werden. Diese Informationen können Dinge wie das Profil des Videocodecs, den Typ für die Audiospuren und so weiter umfassen.
Dieser Leitfaden untersucht kurz die Syntax des Medientyps codecs
Parameter und wie er mit der MIME-Typzeichenfolge verwendet wird, um Details über den Inhalt von Audio- oder Videomedien bereitzustellen, die über die Angabe des Container-Typs hinausgehen.
MIME-Typen für Containerformate
Der MIME-Typ für ein Containerformat wird ausgedrückt, indem der Medientyp (audio
, video
, etc.) gefolgt von einem Schrägstrich (/
) und dann das zur Speicherung des Mediums verwendete Format angegeben wird:
audio/mpeg
-
Eine Audiodatei, die den MPEG Dateityp verwendet, wie beispielsweise 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 früher häufig im Web verwendet, jedoch nicht mehr, da dafür ein Plugin erforderlich war.
Allerdings sind alle diese MIME-Typen vage. Alle diese Dateitypen unterstützen eine Vielzahl von Codecs, und diese Codecs können eine beliebige Anzahl von Profilen, Ebenen und anderen Konfigurationsfaktoren 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. Um dies zu tun, fügen Sie ein Semikolon (;
) gefolgt von codecs=
und dann die Zeichenfolge, die das Format des Inhalts der Datei beschreibt, hinzu. Einige Medientypen erlauben es Ihnen, nur die Namen der zu verwendenden Codecs anzugeben, während andere es Ihnen ermöglichen, auch verschiedene Einschränkungen für diese Codecs anzugeben. Sie können mehrere Codecs angeben, indem Sie sie durch Kommas 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, die AVC (H.264) Video, Main Profile, Level 4.2 enthält.
Wie bei jedem MIME-Typ-Parameter muss codecs
in codecs*
(beachten Sie das Stern-Zeichen *
) geändert werden, wenn einer der Codec-Eigenschaften Sonderzeichen verwendet, die gemäß RFC 2231, Abschnitt 4: MIME Parameter Value and Encoded Word Extensions prozentkodiert werden müssen. Sie können die JavaScript-Funktion encodeURI()
verwenden, um die Parameterliste zu kodieren; und ähnlich können Sie decodeURI()
verwenden, um eine vorher codierte Parameterliste zu dekodieren.
Hinweis:
Wenn der codecs
Parameter verwendet wird, muss die angegebene Liste der Codecs jeden Codec enthalten, der für den Inhalt 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 oben genannten Links führen in denselben Abschnitt; das liegt daran, dass diese Medientypen alle auf dem ISO Base Media File Format (ISO BMFF) basieren und daher die gleiche 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 (anstatt alle oder keine, wie von der Spezifikation gefordert).
Die Komponenten dieser Codec-Parameter-Zeichenfolge werden im Folgenden in der Tabelle detaillierter beschrieben. Jede Komponente hat eine feste Länge. 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 .
Siehe Anhang A, Abschnitt 3 in der AV1-Spezifikation für Details.
|
||||||||||||||||||||
T |
Der einstellige Tiers-Indikator. Für den Main-Tier (seq_tier gleich 0) ist dieser Buchstabe M .
Für den High-Tier (seq_tier ist 1) ist dieser Buchstabe H .
Der High-Tier ist nur für Level 4.0 und höher verfügbar.
|
||||||||||||||||||||
DD |
Die zweistellige Bit-Tiefe der Komponente. Dieser Wert muss einer von 8, 10 oder 12 sein; welche Werte gültig sind, variiert je nach Profil und anderen Eigenschaften. | ||||||||||||||||||||
M |
Die einstellige monochromatische Flagge; wenn dies 0 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 daher monochromatisch. Siehe YUV für Details zur Funktionsweise des YUV-Farbsystems. Der Standardwert ist 0 (nicht monochromatisch). | ||||||||||||||||||||
CCC |
Die dritte Ziffer in Der Standardwert ist |
||||||||||||||||||||
cp |
Der zweistellige color_primaries Wert zeigt das Farbsystem an, das von den Medien verwendet wird.
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 – sind im Farbkonfigurationssemantiken-Abschnitt 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 das Gamma (in der technischen Sprache als "opto-elektronische Transferfunktion" bezeichnet) von der Quelle auf die Anzeige 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 roten, blauen und grünen Kanäle in Luma- und Chromasignale umzuwandeln.
Zum Beispiel werden die standardmäßigen Koeffizienten, die für BT.709 verwendet werden, mit dem Wert 01 angegeben.
Der Standardwert ist 01 (ITU-R BT.709).
|
||||||||||||||||||||
F |
Eine einstellige Flagge, die angibt, ob die Farbe den gesamten Wertebereich verwenden darf (1 ) oder auf die Werte beschränkt werden sollte, die als rechtlich für die angegebene Farbkonfiguration angesehen werden (d.h. die Studio-Swing-Darstellung).
Die Standardeinstellung ist 0 (Verwendung der Studio-Swing-Darstellung).
|
Alle Felder ab M
(monochromatische Flagge) sind optional; Sie können an jedem Punkt aufhören, Felder einzuschließen (aber keine Felder willkürlich auslassen). 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 Bits pro Farbkomponente, 4:2:2 Farbabtastung mit ITU-R BT.2100 Farbprimären, Transfercharakteristika und YCbCr Farbmatrix. Die Studio-Swing-Darstellung ist angegeben.
av01.0.15M.10
-
AV1 Main Profil, Level 5.3, Main Tier, 10 Bits pro Farbkomponente. Die verbleibenden Eigenschaften werden aus den Standardwerten übernommen: 4:2:0 Farbabtastung, BT.709 Farbprimarien, Transfercharakteristiken 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 verwendeten Codec im Container identifiziert, der dann von einer Reihe von periodische (.
) getrennten, zweistelligen Werten gefolgt wird.
cccc.PP.LL.DD cccc.PP.LL.DD.CC.cp.tc.mc.FF
Die ersten vier Komponenten sind erforderlich; alles ab CC
(Farben-Unterabtastung) ist optional, aber alles oder nichts. Jede dieser Komponenten ist in der folgenden Tabelle beschrieben. Nach der Tabelle folgen einige Beispiele.
Komponente | Details | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cccc |
Ein vierstelliger Code, der anzeigt, welcher der möglichen Codecs beschrieben wird. Mögliche Werte sind:
|
||||||||||||||||||||||||||||||||||
PP |
Die zweistellige Profilnummer, mit führenden Nullen aufgefüllt, falls erforderlich, um genau zwei Ziffern zu haben.
|
||||||||||||||||||||||||||||||||||
LL |
Die zweistellige Level-Nummer.
Die Level-Nummer ist eine Festpunktnotation, wobei die erste Ziffer die Einerziffer ist und die zweite Ziffer
die Zehntel repräsentiert.
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 Farbunterabtastungsformat verwendet werden soll. Die folgende Tabelle listet die zulässigen Werte auf; siehe Farbunterabtastung in unserem "Digitale Video-Konzepte"-Leitfaden für zusätzliche Informationen zu diesem Thema und anderen.
|
||||||||||||||||||||||||||||||||||
cp |
Eine zweistellige Ganzzahl, die angibt, welche der Farbprimärfarben aus Abschnitt 8.1 der ISO/IEC 23001-8:2016 Norm verwendet wird. Diese Komponente und jede Komponente danach ist optional. Die möglichen Werte der Farbprimärfarbenkomponente sind:
|
||||||||||||||||||||||||||||||||||
tc |
Eine zweistellige Ganzzahl, die die
transferCharacteristics für das Video angibt.
Dieser Wert stammt aus Abschnitt 8.2 von ISO/IEC 23001-8:2016, und gibt die Transfermerkmale an, die beim Anpassen der dekodierten Farbe an das Ausgabegerät 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, welcher Satz von Koeffizienten beim Mapping von den nativen roten, blauen und grünen Primärfarben zu den Luma- und Chromasignalen verwendet werden soll.
Diese Koeffizienten werden wiederum mit den Gleichungen verwendet, die im selben Abschnitt zu finden sind.
|
||||||||||||||||||||||||||||||||||
FF |
Gibt an, ob das Schwarzlevel und der Farbbereich jeder Farbkomponente auf den legalen Bereich beschränkt werden sollen.
Für 8-Bit Farbmuster reicht der legale Bereich von 16–235.
Ein Wert von 00 zeigt an, dass diese Einschränkungen erzwungen werden sollten, während ein Wert von 01 den vollen Bereich der möglichen Werte für jede Komponente erlaubt, selbst wenn die resultierende Farbe außerhalb der Grenzen für das Farbsystem 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-Inhalt unter Verwendung von 4:2:0 Farbabtastung, BT.2020 Primärfarben, ST 2084 EOTF (HDR SMPTE), BT.2020 nicht-konstanter Luminanzfarbmatrix und vollständiger Bereich 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, 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 dem codecs
Parameter in 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 durch den codecs
Parameter beschriebene Codec kann entweder als Name des Containers (3gp
, mp4
, quicktime
usw.) oder als Containername plus zusätzliche Parameter zur Spezifikation des Codecs und seiner Konfiguration angegeben werden. 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; jedoch beginnt sie immer mit dem vierstelligen Identifikator des Codecs, einem Punkttrennzeichen (.
), gefolgt vom Objekt-Typ-Indikationswert (OTI) für das spezifische Datenformat. Für die meisten Codecs ist der OTI eine zweistellige Hexadezimalzahl; jedoch sind es sechs hexadezimale Ziffern für AVC (H.264).
Daher sieht die Syntax für jeden der unterstützten Codecs so aus:
cccc[.pp]*
(Generisches ISO BMFF)-
Wo
cccc
der vierstellige ID-Code für den Codec ist undpp
der Ort ist, an dem null oder mehr zweistellig kodierte Eigenschaftswerte eingehen. mp4a.oo[.A]
(MPEG-4 Audio)-
Wo
oo
der Objekt-Typ-Indikationswert ist, der den Inhalt der Medien präziser beschreibt undA
der einstellige Audio OTI ist. Die möglichen Werte für den OTI finden Sie auf der MP4 Registration Authority Website auf der Object Types Seite. Zum Beispiel ist Opus-Audio in einer MP4-Dateimp4a.ad
. Für weitere Details, siehe MPEG-4 Audio. mp4v.oo[.V]
(MPEG-4 Video)-
Hier ist
oo
erneut der OTI, der den Inhalt präziser beschreibt, währendV
der einstellige Video OTI ist. avc1[.PPCCLL]
(AVC Video)-
PPCCLL
sind sechs hexadezimale Ziffern, die die Profilnummer (PP
), die Einschränkungsset-Flags (CC
) und die Ebene (LL
) spezifizieren. Siehe AVC Profile für die möglichen Werte vonPP
.Die Einschränkungsset-Flags-Byte besteht aus einstelligen Boolean-Flags, wobei das bedeutendste Bit als Flag 0 (oder
constraint_set0_flag
in einigen Ressourcen) bezeichnet wird, und jedes aufeinanderfolgende 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 hängen vom verwendeten Profil ab.Die Ebene ist eine Festpunktzahl, sodass ein Wert von
14
(Dezimal 20) Level 2.0 bedeutet, während ein Wert von3D
(Dezimal 61) Level 6.1 bedeutet. Im Allgemeinen gilt: Je höher die Level-Nummer, desto mehr Bandbreite wird der Stream verwenden, 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, ebenso wie der Wert, der für die Einschränkungskomponente, CC
, anzugeben ist.
Profil | Nummer (Hex) | Einschränkungsbyte |
---|---|---|
Constrained Baseline Profile (CBP) CBP ist vor allem eine Lösung für Szenarien, in denen Ressourcen eingeschränkt sind oder der Ressourcenverbrauch kontrolliert werden muss, um die Wahrscheinlichkeit schlechter Medienleistung zu minimieren. | 42 |
40 |
Baseline Profile (BP) Ähnlich wie CBP, jedoch mit mehr Verlustschutz und Wiederherstellungsfähigkeiten. Dies wird nicht 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 Netzwerkstreaming von Video, mit hoher Kompressionsfähigkeit und weiteren Verbesserungen der Datenrobustheit und Streamumschaltung. | 58 |
00 |
Main Profile (MP) Das Profil, das für Standard-Definitionen digitales Fernsehen verwendet wird, das im MPEG-4 Format ausgestrahlt wird. Nicht für hochauflösende Fernsehaussendungen verwendet. Die Bedeutung dieses Profils hat seit der Einführung des High Profile in 2004 verflogen, das für HDTV-Nutzung hinzugefügt wurde. | 4D |
00 |
High Profile (HiP) Derzeit ist HiP das Hauptprofil, das für HD-Video in Broadcasts und auf Disc-basierte Videos verwendet wird; es wird sowohl für HD-TV-Broadcasts als auch für Blu-Ray-Video verwendet. | 64 |
00 |
Progressive High Profile (PHiP) Im Wesentlichen High Profile ohne Unterstützung für Feldcodierung. | 64 |
08 |
Constrained High Profile PHiP, jedoch ohne Unterstützung für bidirektionale prädiktive 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 Hi10P um Unterstützung für 4:2:2 Farbabtastung zusammen mit bis zu 10 Bits pro Farbkomponente. | 7A |
00 |
High 4:4:4 Predictive Profile (Hi444PP) Zusätzlich zu den in Hi422P enthaltenen Fähigkeiten fügt Hi444PP Unterstützung für 4:4:4 Farbabtastung (in dem keine Farbinformationen verworfen werden) hinzu. Beinhaltet auch Unterstützung für bis zu 14 Bits pro Farbmuster und effizientes verlustfreies Regionenkodierung. Die Option, jeden Frame als drei separate Farbebenen zu codieren (das heißt, die Daten für jede Farbe werden gespeichert, als ob es ein einzelner monochromer Frame wäre). | F4 |
00 |
High 10 Intra Profile High 10 beschränkt auf die ausschließliche Verwendung von Intragets. Hauptsächlich für professionelle Anwendungen verwendet. | 6E |
10 |
High 4:2:2 Intra Profile Das Hi422-Profil mit ausschließlicher Verwendung von Intraframes. | 7A |
10 |
High 4:4:4 Intra Profile Das High 4:4:4-Profil, das auf die Verwendung von Intra-Frames beschränkt ist. | F4 |
10 |
CAVLC 4:4:4 Intra Profile Das High 4:4:4-Profil, das auf die ausschließliche Verwendung von Intra-Frames und auf die ausschließliche Verwendung der CAVLC-Kodierung (Context Adaptative Variable Length Coding) beschränkt ist. | 44 |
00 |
Scalable Baseline Profile Vorgesehen für den Einsatz bei Videokonferenzen sowie bei Überwachungs- und mobilen Anwendungen, basiert das SVC Baseline-Profil auf dem AVC Constrained Baseline-Profil. Der Basisschicht innerhalb des Streams wird auf einem hohen Qualitätsniveau bereitgestellt, mit einer Anzahl von sekundären Substreams, die alternative Formen des gleichen Videos für verschiedene beschränkte Umgebungen bieten. Dazu können jede Kombination aus reduzierter Auflösung, reduzierter Bildrate oder erhöhter Komprimierung gehören. | 53 |
00 |
Scalable Constrained Baseline Profile Hauptsächlich verwendet für Echtzeitkommunikationsanwendungen. Noch nicht von WebRTC unterstützt, aber eine Erweiterung zur WebRTC-API um SVC zu erlauben ist in Entwicklung. | 53 |
04 |
Scalable High Profile Hauptsächlich für Broadcast- und Streaming-Anwendungen gedacht. Die Basisschicht (oder die qualitativ hochwertigste Schicht) muss das AVC High Profile konformieren. | 56 |
00 |
Scalable Constrained High Profile Ein Subset des Scalable High Profiles, das hauptsächlich für Echtzeitkommunikation konzipiert ist. | 56 |
04 |
Scalable High Intra Profile Hauptsächlich nützlich nur für Produktionsanwendungen, unterstützt dieses Profil nur die ausschließliche Verwendung von Intra-Frames. | 56 |
20 |
Stereo High Profile Das Stereo High Profile bietet stereoskopisches Video mit zwei Darstellungen der Szene (linkes Auge und rechtes Auge). Ansonsten bietet es die gleichen Funktionen wie das High Profile. | 80 |
00 |
Multiview High Profile Unterstützt zwei oder mehr Ansichten mit sowohl temporaler als auch MVC-Zwischenansichtsvorhersage. Unterstützt nicht Feldbilder oder makroblock-adaptive Frame-Field-Codierung. | 76 |
00 |
Multiview Depth High Profile Basiert auf dem High Profile, an das der Hauptsubstream angepasst werden 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 so aussehen:
mp4a.oo[.A]
Hierbei ist oo
die zweistellige hexadezimale Objekt-Typ-Indikation, 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 unterhält. Ein spezieller Wert ist 40
; dies weist darauf hin, dass das Medium MPEG-4-Audio (ISO/IEC 14496 Teil 3) ist. Um noch spezifischer zu sein, wird eine dritte Komponente – der Audio-Objekttyp – für OTI 40
hinzugefügt, um den Typ auf einen bestimmten Subtyp von MPEG-4 einzugrenzen.
Der Audio-Objekttyp wird als eine ein- oder zweistellige dezimal Zahl angegeben (im Gegensatz zu den meisten anderen Werten im codecs
Parameter, die hexadezimal sind). Beispielsweise hat MPEG-4's AAC-LC eine Audio-Objekttypennummer von 2
, sodass der vollständige codecs
Wert, der AAC-LC repräsentiert, mp4a.40.2
ist.
Daher kann ER AAC LC, dessen Audio-Objekttyp 17
ist, mit dem vollständigen codecs
Wert mp4a.40.17
dargestellt werden. Einstellige Werte können entweder als eine Ziffer (was die beste Wahl ist, da es am breitesten kompatibel sein wird) oder mit führender Null auf zwei Ziffern gepolstert, wie mp4a.40.02
, angegeben werden.
Hinweis:
Die Spezifikation verlangte ursprünglich, dass die Audio-Objekttypennummer in der dritten Komponente nur eine Dezimalziffer ist. Jedoch wurden im Laufe der Zeit durch Änderungen an der Spezifikation der Bereich dieser Werte weit über eine Dezimalziffer hinaus erweitert, sodass die dritte Komponente jetzt entweder ein- oder zweistellig sein kann. Das Auffüllen von Werten unter 10 mit einer führenden 0
ist optional. Ältere Implementationen von MPEG-4-Codecs unterstützen möglicherweise keine zweistelligen Werte; die Verwendung einer einzigen Stelle wird jedoch die Kompatibilität maximieren.
Die Audio-Objekttypen sind in ISO/IEC 14496-3 Unterabschnitt 1 Abschnitt 1.5.1 definiert. Die nachstehende Tabelle bietet eine grundlegende Liste der Audio-Objekttypen und im Fall der häufigeren Objekttypen eine Liste der Profile, die sie unterstützen, aber Sie sollten sich die Spezifikation ansehen, wenn Sie mehr über das Innenleben eines bestimmten MPEG-4-Audiotyps wissen möchten.
ID | Audio-Objekttyp | Profilunterstützung |
---|---|---|
0 |
NULL | |
1 |
AAC Main | Haupt |
2 |
AAC LC (Low Complexity) | Haupt, Skalierbar, HQ, LD v2, AAC, HE-AAC, HE-AAC v2 |
3 |
AAC SSR (Scalable Sampling Rate) | Haupt |
4 |
AAC LTP (Long Term Prediction) | Haupt, Skalierbar, HQ |
5 |
SBR (Spectral Band Replication) | HE-AAC, HE-AAC v2 |
6 |
AAC Skalierbar | Haupt, Skalierbar, HQ |
7 |
TwinVQ (Codierung für ultraniedrige Bitraten) | Haupt, Skalierbar |
8 |
CELP (Code-Excited Linear Prediction) | Haupt, Skalierbar, Sprache, HQ, LD |
9 |
HVXC (Harmonic Vector Excitation Coding) | Haupt, Skalierbar, Sprache, LD |
10 – 11 |
Reserviert | |
12 |
TTSI (Text to Speech Interface) | Haupt, Skalierbar, Sprache, Synthetisch, LD |
13 |
Haupt Synthetisch | Haupt, Synthetisch |
14 |
Wavetabellen-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 Skalierbar (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 bidirektionale 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 (Error Resilient Parametric) | |
28 |
SSC (Sinusoidal Coding) | |
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 Grundform eines WebM codecs
Parameters besteht darin, einen oder mehrere der vier WebM-Codecs nach 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. Zum einen 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, die beim Auswählen des Medienformats verwendet werden, das im Element für den Benutzer präsentiert werden soll.
Sie können den codecs
Parameter auch verwenden, wenn Sie einen MIME-Medientyp an die MediaSource.isTypeSupported()
Methode angeben; diese Methode gibt einen Boolean zurück, der angibt, ob die Medien auf dem aktuellen Gerät wahrscheinlich funktionieren werden.
Siehe auch
- Web-Medientechnologien
- Das
<source>
Element, Kind des<audio>
und des<video>
Elements - Leitfaden zu Medientypen und -formaten im Web
- Leitfaden zu auf dem Web verwendeten Audio-Codecs
- Leitfaden zu auf dem Web verwendeten Video-Codecs
- Von WebRTC verwendete Codecs
- Die korrekten HTML-Codecs-Parameter für ein AV1-Video erhalten