常見媒體型別中的編解碼器

從根本上說,你可以使用基本的 MIME 型別來指定媒體檔案的型別,例如 video/mp4audio/mpeg。然而,許多媒體型別——尤其是那些支援影片軌道的媒體型別——可以從更精確地描述其內部資料格式的能力中受益。例如,僅用 MIME 型別 video/mp4 來描述 MPEG-4 檔案中的影片,並不能說明其中實際媒體採用何種格式。

因此,可以將 codecs 引數新增到描述媒體內容的 MIME 型別中。有了它,就可以提供容器特定的資訊。這些資訊可能包括影片編解碼器的配置檔案、音軌使用的型別等等。

本指南簡要介紹了媒體型別 codecs 引數的語法,以及如何將其與 MIME 型別字串一起使用,以提供有關音訊或影片媒體內容的詳細資訊,而不僅僅是指出容器型別。

容器格式 MIME 型別

容器格式的 MIME 型別透過宣告媒體型別(audiovideo 等),然後是一個斜槓字元(/),再加上用於包含媒體的格式來表示。

audio/mpeg

使用 MPEG 檔案型別的音訊檔案,例如 MP3。

video/ogg

使用 Ogg 檔案型別的影片檔案。

video/mp4

使用 MPEG-4 檔案型別的影片檔案。

video/quicktime

採用 Apple 的 QuickTime 格式的影片檔案。如其他地方所述,這種格式曾經在 Web 上普遍使用,但現在不再使用,因為它需要外掛才能使用。

然而,這些 MIME 型別中的每一種都是模糊的。所有這些檔案型別都支援多種編解碼器,而這些編解碼器可能有任意數量的配置檔案、級別和其他配置因素。因此,你可能希望在媒體型別中包含 codecs 引數。

基本語法

你可以將 codecs 引數新增到媒體型別中。為此,請附加一個分號(;),後跟 codecs=,然後是描述檔案內容格式的字串。某些媒體型別只允許你指定要使用的編解碼器的名稱,而其他媒體型別則允許你同時指定對這些編解碼器的各種約束。你可以透過用逗號分隔來指定多個編解碼器。

audio/ogg; codecs=vorbis

包含 Vorbis 音軌的 Ogg 檔案。

video/webm; codecs="vp8, vorbis"

一個包含 VP8 影片和/或 Vorbis 音訊的 WebM 檔案。

video/mp4; codecs="avc1.4d002a"

一個包含 AVC (H.264) 影片、Main Profile、Level 4.2 的 MPEG-4 檔案。

與任何 MIME 型別引數一樣,如果編解碼器的任何屬性使用特殊字元,必須根據 RFC 2231 第 4 節:MIME 引數值和編碼字擴充套件 進行百分比編碼,那麼 codecs 必須更改為 codecs*(注意星號字元 *)。你可以使用 JavaScript 的 encodeURI() 函式來編碼引數列表;同樣,你可以使用 decodeURI() 來解碼先前編碼的引數列表。

備註: 使用 codecs 引數時,指定的編解碼器列表必須包含檔案中使用的所有編解碼器。該列表也可以包含檔案中不存在的編解碼器。

按容器分類的編解碼器選項

以下容器在其 codecs 引數中支援擴充套件的編解碼器選項。

上面的一些連結指向同一個部分;這是因為這些媒體型別都基於 ISO 基礎媒體檔案格式(ISO BMFF),因此它們共享相同的語法。

AV1

AV1 的 codecs 引數語法在 AV1 編解碼器 ISO 媒體檔案格式繫結規範的第 5 節:編解碼器引數字串中定義。

av01.P.LLT.DD[.M.CCC.cp.tc.mc.F]

備註: 基於 Chromium 的瀏覽器會接受可選引數的任何子集(而不是規範要求的全部或全不)。

下表更詳細地描述了此編解碼器引數字串的元件。每個元件都有固定的字元長度;如果值小於該長度,則必須用前導零填充。

AV1 編解碼器引數字串元件
元件 詳情
P

一位數的 profile 編號。

AV1 profile 編號
Profile 編號 描述
0 “Main” profile;支援 YUV 4:2:0 或單色位元流,每個分量的位深度為 8 或 10 位。
1 “High” profile 增加了對 4:4:4 色度二次取樣的支援。
2 “Professional” profile 增加了對 4:2:2 色度二次取樣和每分量 12 位色彩的支援。
LL 兩位數的 level 編號,它會轉換為 X.Y 格式的 level 格式,其中 X = 2 + (LL >> 2)Y = LL & 3。有關詳細資訊,請參閱 AV1 規範中的附錄 A,第 3 節
T 一個字元的 tier 指示符。對於 Main tier(seq_tier 等於 0),此字元為字母 M。對於 High tier(seq_tier 為 1),此字元為字母 H。High tier 僅適用於 4.0 及以上級別。
DD 兩位數的分量位深度。此值必須是 8、10 或 12 之一;哪些值有效取決於 profile 和其他屬性。
M 一位數的單色標誌;如果為 0,則影片除 Y 平面外還包括 U 和 V 平面。否則,影片資料完全在 Y 平面中,因此是單色的。有關 YUV 色彩系統工作原理的詳細資訊,請參閱 YUV。預設值為 0(非單色)。
CCC

CCC 表示色度二次取樣,為三位數字。第一位是 subsampling_x,第二位是 subsampling_y。如果兩者都為 1,則第三位是 chroma_sample_position 的值;否則,第三位始終為 0。這與 M 元件結合使用,可用於構造色度二次取樣格式。

確定色度二次取樣格式
subsampling_x subsampling_y 單色標誌 色度二次取樣格式
0 0 0 YUV 4:4:4
1 0 0 YUV 4:2:2
1 1 0 YUV 4:2:0
1 1 1 YUV 4:0:0 (單色)

CCC 中的第三位數字表示色度取樣位置,值為 0 表示位置未知,必須在解碼期間單獨提供;值為 1 表示取樣位置與 (0, 0) 亮度樣本水平同位;值為 2 表示取樣位置與 (0, 0) 亮度同位。

預設值為 110(4:2:0 色度二次取樣)。

cp 兩位數的 color_primaries 值表示媒體使用的色彩系統。例如,用於 HDR 影片的 BT.2020/BT.2100 色彩為 09。此資訊——以及每個其餘元件的資訊——可在 AV1 規範的色彩配置語義部分中找到。預設值為 01 (ITU-R BT.709)。
tc 兩位數的 transfer_characteristics 值。此值定義了用於將伽馬(在技術術語中被稱為“光電傳輸函式”)從源對映到顯示器的函式。例如,10 位 BT.2020 為 14。預設值為 01 (ITU-R BT.709)。
mc 兩位數的 matrix_coefficients 常量選擇用於將紅、藍、綠通道轉換為亮度和色度訊號的矩陣係數。例如,BT.709 使用的標準係數用值 01 表示。預設值為 01 (ITU-R BT.709)。
F 一個數字的標誌,指示顏色是否應被允許使用所有可能值的完整範圍(1),或者應被限制在指定顏色配置中被認為是合法的值(即演播室擺幅表示法)。預設值為 0(使用演播室擺幅表示法)。

M(單色標誌)開始的所有欄位都是可選的;你可以在任何時候停止包含欄位(但不能隨意省略欄位)。預設值包含在上表中。一些 AV1 編解碼器字串示例:

av01.2.15M.10.0.100.09.16.09.0

AV1 Professional Profile,級別 5.3,Main tier,每顏色分量 10 位,使用 ITU-R BT.2100 色彩原色、傳輸特性和 YCbCr 色彩矩陣的 4:2:2 色度二次取樣。已指明使用演播室擺幅表示法。

av01.0.15M.10

AV1 Main Profile,級別 5.3,Main tier,每顏色分量 10 位。其餘屬性取自預設值:4:2:0 色度二次取樣,BT.709 色彩原色、傳輸特性和矩陣係數。演播室擺幅表示法。

VP9

ISO 基礎媒體檔案格式語法

VP9 的 codecs 引數語法在 VP 編解碼器 ISO 媒體檔案格式繫結規範的編解碼器引數字串部分中定義。

在這種格式中,codecs 引數的值以一個四字元程式碼開頭,該程式碼標識容器中使用的編解碼器,後面跟著一系列用句點(.)分隔的兩位數值。

cccc.PP.LL.DD
cccc.PP.LL.DD.CC.cp.tc.mc.FF

前四個元件是必需的;從 CC(色度二次取樣)開始的所有內容都是可選的,但要麼全有,要麼全無。下表描述了這些元件中的每一個。表格後面是一些示例。

WebM 編解碼器引數元件
元件 詳情
cccc

一個四字元程式碼,指示正在描述的是哪種可能的編解碼器。可能的值有:

WebM 支援的編解碼器的四字元程式碼
四字元程式碼 編解碼器
vp08 VP8
vp09 VP9
vp10 VP10
PP

兩位數的 profile 編號,如有必要,用前導零填充以確保恰好是兩位數。

WebM profile 編號
配置檔案 描述
00 僅支援 4:2:0(水平和垂直方向都進行了色度二次取樣)。每個顏色分量只允許 8 位。
01 允許所有色度二次取樣格式。每個顏色分量只允許 8 位。
02 僅支援 4:2:0(水平和垂直方向都進行了色度二次取樣)。支援 8、10 或 12 位的顏色樣本分量。
03 允許所有色度二次取樣格式。支援 8、10 或 12 位的顏色樣本分量。
LL 兩位數的 level 編號。level 編號是定點表示法,其中第一位是整數位,第二位代表十分位。例如,level 3 是 30,level 6.1 是 61
DD 亮度和顏色分量值的位深度;允許的值為 8、10 和 12。
CC

一個兩位數的值,指示使用哪種色度二次取樣格式。下表列出了允許的值;有關此主題及其他主題的更多資訊,請參閱我們的“數字影片概念”指南中的色度二次取樣

WebM 色度二次取樣識別符號
色度二次取樣格式
00 4:2:0,色度樣本位於畫素之間。
01 4:2:0 色度二次取樣,樣本與亮度 (0, 0) 同位。
02 4:2:2 色度二次取樣(每 4 個水平畫素的亮度中有 4 個被使用)。
03 4:4:4 色度二次取樣(每個畫素的亮度和色度都保留)。
04 保留
cp

一個兩位數整數,指定來自 ISO/IEC 23001-8:2016 標準第 8.1 節的色彩原色。此元件及其後的每個元件都是可選的。

色彩原色元件的可能值為:

ISO/IEC 色彩原色識別符號
詳情
00 保留供 ITU 或 ISO/IEC 將來使用
01 BT.709、sRGB、sYCC。BT.709 是高畫質(HD)電視的標準;sRGB 是計算機顯示器最常用的色彩空間。廣播級 BT.709 使用 8 位色深,合法範圍為 16(黑)到 235(白)。
02 影像特性未知,或由應用程式確定
03 保留供 ITU 或 ISO/IEC 將來使用
04 BT.470 System M,NTSC(美國標清電視)
05 BT.470 System B, G; BT.601; BT.1358 625; BT.1700 625 PAL 和 625 SECAM
06 BT.601 525;BT.1358 525 或 625;BT.1700 NTSC;SMPTE 170M。功能上與 7 相同。
70 SMPTE 240M(歷史標準)。功能上與 6 相同。
08 通用膠片
09 BT.2020;BT.2100。用於超高畫質(4K)高動態範圍(HDR)影片,這些標準具有非常寬的色,並支援 10 位和 12 位色深。
10 SMPTE ST 428(數字影院發行母版:影像特性)。定義了 DCDM 的未壓縮影像特性。
11 SMPTE RP 431(數字影院質量:參考放映機和環境)。描述了提供一致電影放映體驗的參考放映機和環境條件。
12 SMPTE EG 432(數字源處理:數字影院的色彩處理)。為數字電影的色彩訊號解碼提供建議的工程指南。
1321 保留供 ITU-T 或 ISO/IEC 將來使用
22 EBU Tech 3213-E
23255 保留供 ITU-T 或 ISO/IEC 將來使用
tc 一個兩位數整數,指示影片的 transferCharacteristics。此值來自 ISO/IEC 23001-8:2016 的第 8.2 節,並指示在將解碼後的顏色適配到渲染目標時要使用的傳輸特性。
mc matrixCoefficients 屬性的兩位數值。此值來自 ISO/IEC 23001-8:2016 規範第 8.3 節中的表格。此值指示在從原生紅、藍、綠原色對映到亮度和色度訊號時使用哪組係數。這些係數又與該節中找到的方程式一起使用。
FF 指示是否將每個顏色分量的黑電平和顏色範圍限制在合法範圍內。對於 8 位顏色樣本,合法範圍是 16-235。值 00 表示應強制執行這些限制,而值 01 則允許每個分量的所有可能值的完整範圍,即使結果顏色超出了顏色系統的範圍。

示例

video/webm;codecs="vp09.02.10.10.01.09.16.09.01,opus"

VP9 影片,profile 2,level 1.0,使用 4:2:0 色度二次取樣的 10 位 YUV 內容,BT.2020 原色,ST 2084 EOTF (HDR SMPTE),BT.2020 非恆定亮度色彩矩陣,以及全範圍色度和亮度編碼。音訊為 Opus 格式。

ISO 基礎媒體檔案格式:MP4、QuickTime 和 3GP

所有基於 ISO 基礎媒體檔案格式(ISO BMFF)的媒體型別都為 codecs 引數共享相同的語法。這些媒體型別包括 MPEG-4(實際上,MPEG-4 所基於的 QuickTime 檔案格式也是如此)以及 3GP。影片和音訊軌道都可以使用 codecs 引數與以下 MIME 型別一起描述:

MIME 型別 描述
audio/3gpp 3GP 音訊 (RFC 3839: MIME Type Registrations for 3rd generation Partnership Project (3GP) Multimedia files)
video/3gpp 3GP 影片 (RFC 3839: MIME Type Registrations for 3rd generation Partnership Project (3GP) Multimedia files)
audio/3gp2 3GP2 音訊 (RFC 4393: MIME Type Registrations for 3GPP2 Multimedia files)
video/3gp2 3GP2 影片 (RFC 4393: MIME Type Registrations for 3GPP2 Multimedia files)
audio/mp4 MP4 音訊 (RFC 4337: MIME Type Registration for MPEG-4)
video/mp4 MP4 影片 (RFC 4337: MIME Type Registration for MPEG-4)
application/mp4 封裝在 MPEG-4 中的非視聽媒體

codecs 引數描述的每個編解碼器都可以指定為容器的名稱(3gpmp4quicktime 等),或者容器名稱加上附加引數以指定編解碼器及其配置。編解碼器列表中的每個條目可能包含一些由句點(.)分隔的元件。

codecs 的值的語法因編解碼器而異;然而,它總是以編解碼器的四字元識別符號、一個句點分隔符(.),後跟特定資料格式的物件型別指示(OTI)值開始。對於大多數編解碼器,OTI 是一個兩位十六進位制數;然而,對於 AVC (H.264),它是六位十六進位制數。

因此,每個支援的編解碼器的語法如下:

cccc[.pp]* (通用 ISO BMFF)

其中 cccc 是編解碼器的四字元 ID,pp 是零個或多個雙字元編碼屬性值的位置。

mp4a.oo[.A] (MPEG-4 音訊)

其中 oo 是更精確描述媒體內容的物件型別指示值,A 是一個數字的音訊 OTI。OTI 的可能值可以在 MP4 註冊機構網站的物件型別頁面上找到。例如,MP4 檔案中的 Opus 音訊是 mp4a.ad。有關更多詳細資訊,請參閱MPEG-4 音訊

mp4v.oo[.V] (MPEG-4 影片)

這裡,oo 再次是更精確描述內容的物件型別指示,而 V 是一個數字的影片 OTI。

avc1[.PPCCLL] (AVC 影片)

PPCCLL 是六個十六進位制數字,指定了 profile 編號(PP)、約束集標誌(CC)和 level(LL)。有關 PP 的可能值,請參閱AVC profiles

約束集標誌位元組由一位布林標誌組成,最高有效位被稱為標誌 0(或在某些資源中為 constraint_set0_flag),每個後續位編號增加一。目前,只使用了標誌 0 到 2;其他五個位必須為零。標誌的含義因所使用的 profile 而異。

level 是一個定點數,因此值 14(十進位制 20)表示 level 2.0,而值 3D(十進位制 61)表示 level 6.1。一般來說,level 數字越高,流將使用的頻寬越多,支援的最大影片尺寸也越大。

avc3[.PPCCLL] (可變解析度 AVC)

avc3 編解碼器引數與 avc1 編解碼器引數具有相同的語法。

AVC profiles

以下是 AVC profiles 及其在 codecs 引數中使用的 profile 編號,以及為約束元件 CC 指定的值。

配置檔案 編號 (十六進位制) 約束位元組
受限基線配置檔案 (CBP) CBP 主要是在資源受限或需要控制資源使用以最小化媒體效能不佳可能性的場景中的解決方案。 42 40
基線配置檔案 (BP) 與 CBP 類似,但具有更多的資料丟失保護和恢復能力。在 CBP 引入之前,它的使用不如現在廣泛。所有 CBP 流也被認為是 BP 流。 42 00
擴充套件配置檔案 (XP) 專為網路影片流設計,具有高壓縮能力以及對資料魯棒性和流切換的進一步改進。 58 00
主配置檔案 (MP) 用於以 MPEG-4 格式廣播的標清數字電視的配置檔案。用於高畫質電視廣播。自 2004 年為 HDTV 使用引入了高配置檔案以來,此配置檔案的重要性已經減弱。 4D 00
高配置檔案 (HiP) 目前,HiP 是廣播和光碟高畫質影片使用的主要配置檔案;它既用於高畫質電視廣播,也用於藍光影片。 64 00
逐行高配置檔案 (PHiP) 本質上是高配置檔案,但不支援場編碼。 64 08
受限高配置檔案 PHiP,但不支援雙向預測切片(“B-slices”)。 64 0C
高 10 配置檔案 (Hi10P) 高配置檔案,但支援每個顏色分量最多 10 位。 6E 00
高 4:2:2 配置檔案 (Hi422P) 在 Hi10P 的基礎上擴充套件,增加了對 4:2:2 色度二次取樣的支援,以及每個顏色分量最多 10 位。 7A 00
高 4:4:4 預測配置檔案 (Hi444PP) 除了 Hi422P 中包含的功能外,Hi444PP 還增加了對 4:4:4 色度二次取樣(不丟棄任何顏色資訊)的支援。還包括對每個顏色樣本最多 14 位的支援和高效的無損區域編碼。以及將每個幀編碼為三個獨立顏色平面(即,每個顏色的資料儲存方式如同它是一個單色幀)的選項。 F4 00
高 10 Intra 配置檔案 高 10 配置檔案,限制為僅使用幀內編碼。主要用於專業應用。 6E 10
高 4:2:2 Intra 配置檔案 Hi422 配置檔案,僅使用幀內編碼。 7A 10
高 4:4:4 Intra 配置檔案 高 4:4:4 配置檔案,限制為僅使用幀內編碼。 F4 10
CAVLC 4:4:4 Intra 配置檔案 高 4:4:4 配置檔案,限制為僅使用幀內編碼,且僅使用 CAVLC 熵編碼。 44 00
可伸縮基線配置檔案 旨在用於視訊會議以及監控和移動用途,SVC 基線配置檔案基於 AVC 的受限基線配置檔案。流中的基礎層以高質量級別提供,並帶有一些輔助子流,這些子流提供相同影片的替代形式,用於各種受限環境。這些可能包括降低解析度、降低幀率或增加壓縮級別的任何組合。 53 00
可伸縮受限基線配置檔案 主要用於即時通訊應用。WebRTC 尚不支援,但正在開發一個允許 SVC 的 WebRTC API 擴充套件。 53 04
可伸縮高配置檔案 主要用於廣播和流媒體應用。基礎(或最高質量)層必須符合 AVC 高配置檔案。 56 00
可伸縮受限高配置檔案 可伸縮高配置檔案的一個子集,主要為即時通訊設計。 56 04
可伸縮高 Intra 配置檔案 主要僅對生產應用有用,此配置檔案僅支援全幀內使用。 56 20
立體高配置檔案 立體高配置檔案使用場景的兩個渲染(左眼和右眼)提供立體影片。否則,提供與高配置檔案相同的功能。 80 00
多檢視高配置檔案 支援兩個或多個檢視,使用時間和 MVC 檢視間預測。支援場圖片或宏塊自適應幀場編碼。 76 00
多檢視深度高配置檔案 基於高配置檔案,主子流必須遵守該配置檔案。其餘子流必須與立體高配置檔案匹配。 8A 00

MPEG-4 音訊

codecs 列表中的條目值以 mp4a 開頭時,該值的語法應為:

mp4a.oo[.A]

這裡,oo 是兩位十六進位制的物件型別指示(Object Type Indication),它指定了用於媒體的編解碼器類別。OTI 由 MP4 註冊機構分配,該機構維護著一個可能的 OTI 值列表。一個特殊的值是 40;這表示媒體是 MPEG-4 音訊(ISO/IEC 14496 Part 3)。為了更具體,對於 OTI 40,會新增第三個元件——音訊物件型別(Audio Object Type)——以將型別縮小到 MPEG-4 的特定子型別。

音訊物件型別被指定為一個或兩個數字的十進位制值(與 codecs 引數中的大多數其他使用十六進位制的值不同)。例如,MPEG-4 的 AAC-LC 的音訊物件型別編號為 2,因此表示 AAC-LC 的完整 codecs 值為 mp4a.40.2

因此,音訊物件型別為 17 的 ER AAC LC 可以用完整的 codecsmp4a.40.17 表示。單位數值可以作為一位數給出(這是最佳選擇,因為它將具有最廣泛的相容性),也可以用前導零填充到兩位數,例如 mp4a.40.02

備註: 規範最初規定第三個元件中的音訊物件型別編號只能是一位十進位制數字。然而,隨著時間的推移,對規範的修訂將這些值的範圍擴充套件到遠遠超出一位十進位制數字,因此現在第三個引數可能是一到兩位數字。對低於 10 的值用前導 0 填充是可選的。然而,舊的 MPEG-4 編解碼器實現可能不支援兩位數值,因此在可能的情況下使用單個數字將最大化相容性。

音訊物件型別在 ISO/IEC 14496-3 子部分 1,第 1.5.1 節中定義。下表提供了音訊物件型別的基本列表,並在更常見的物件型別的情況下提供了支援它的配置檔案列表,但如果您需要了解任何給定 MPEG-4 音訊型別的內部工作原理的更多細節,應參考規範。

MPEG-4 音訊物件型別
ID 音訊物件型別 Profile 支援
0 NULL
1 AAC Main Main
2 AAC LC (低複雜度) Main、Scalable、HQ、LD v2、AAC、HE-AAC、HE-AAC v2
3 AAC SSR (可伸縮取樣率) Main
4 AAC LTP (長期預測) Main、Scalable、HQ
5 SBR (頻譜帶複製) HE-AAC、HE-AAC v2
6 AAC Scalable Main、Scalable、HQ
7 TwinVQ (超低位元率編碼) Main、Scalable
8 CELP (碼激勵線性預測) Main、Scalable、Speech、HQ、LD
9 HVXC (諧波向量激勵編碼) Main、Scalable、Speech、LD
1011 保留
12 TTSI (文字到語音介面) Main、Scalable、Speech、Synthetic、LD
13 主合成 Main、Synthetic
14 波表合成
15 通用 MIDI
16 演算法合成和音訊效果
17 ER AAC LC (容錯 AAC 低複雜度) HQ、移動互聯
18 保留
19 ER AAC LTP (容錯 AAC 長期預測) HQ
20 ER AAC Scalable (容錯 AAC 可伸縮) 移動互聯
21 ER TwinVQ (容錯 TwinVQ) 移動互聯
22 ER BSAC (容錯位切片算術編碼) 移動互聯
23 ER AAC LD (容錯 AAC 低延遲;用於雙向通訊) LD、移動互聯
24 ER CELP (容錯碼激勵線性預測) HQ、LD
25 ER HVXC (容錯諧波向量激勵編碼) LD
26 ER HILN (容錯諧波和獨立線加噪聲)
27 ER Parametric (容錯引數化)
28 SSC (正弦編碼)
29 PS (引數化立體聲) 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 (直接流傳輸)
36 ALS (音訊無損)
37 SLS (可伸縮無損)
38 SLS Non-core (可伸縮無損非核心)
39 ER AAC ELD (容錯 AAC 增強低延遲)
40 SMR Simple (符號音樂表示 簡單)
41 SMR Main (符號音樂表示 主要)
42 保留
43

SAOC (空間音訊物件編碼)

ISO/IEC 14496-3:2009/Amd.2:2010(E) 中定義。

44

LD MPEG Surround (低延遲 MPEG Surround)

ISO/IEC 14496-3:2009/Amd.2:2010(E) 中定義。

45 及以上 保留

HEVC: MP4、Quicktime、Matroska

高效影片編碼編解碼器,也稱為 H.265 和 MPEG-H Part 2,可以包含在 MP4 (video/mp4)、Quicktime (video/quicktime) 和 Matroska (video/matroska) 容器中。

HEVC 的使用通常透過附加 codecs 引數的支援 MIME 型別來描述;語法示例如下:

video/mp4;codecs=hvc1.1.6.L186.B0,mp4a.40.2
video/mp4;codecs=hvc1.1.6.L186.B0,opus
video/mp4;codecs=hev1.1.6.L186.B0,mp4a.40.2
video/mp4;codecs=hev1.1.6.L186.B0,opus

每個支援的編解碼器的語法如下所示:

hvc1[.A.B.C.D] (HEVC 影片)

該值以編解碼器的四字元識別符號(hvc1)開始,後面跟著四個或更多由句點(.)分隔的值。

A

general_profile_space。這被編碼為一個或兩個字元:

  • 第一個字元是 ABC,分別代表 general_profile_space 123,或者沒有字元,代表 general_profile_space 0
  • 第二個字元是代表 general_profile_idc 的十進位制數。

    備註:在上面的示例中,值 1 表示 general_profile_space === 0(無字元)和 general_profile_idc === 1

B

一個 32 位的值,代表一個或多個通用配置檔案相容性標誌general_profile_compatibility_flag),以十六進位制編碼(前導零可以省略),並按從最高有效位到最低有效位的反向位序指定。這些值可以從 31(最高有效)到 0(最低有效),並在 ISO/IEC 23008-2 中指定。

備註:在上面的示例中,值 6 表示 general_profile_compatibility_flag === 6

C

general_tier_flag,編碼為 L (general_tier_flag === 0) 或 H (general_tier_flag === 1),後跟 general_level_idc,編碼為十進位制數。

備註:在上面的示例中,值 L186 表示 general_tier_flag === 0,後跟 general_level_idc === 186

D

一個或多個 6 位元組的約束標誌。請注意,每個標誌都編碼為十六進位制數,並用一個額外的句點分隔;尾部的零位元組可以省略。

備註:在上面的示例中,只存在一個約束標誌——B0

hev1[.A.B.C.D] (可變解析度 HEVC)

hev1 編解碼器引數與 hvc1 編解碼器引數具有相同的語法。

WebM

WebM codecs 引數的基本形式是列出一個或多個四種 WebM 編解碼器的名稱,用逗號分隔。下表顯示了一些示例:

MIME 型別 描述
video/webm;codecs="vp8" 一個包含 VP8 影片的 WebM 影片;未指定音訊。
video/webm;codecs="vp9" 一個包含 VP9 影片的 WebM 影片。
audio/webm;codecs="vorbis" WebM 容器中的 Vorbis 音訊。
audio/webm;codecs="opus" WebM 容器中的 Opus 音訊。
video/webm;codecs="vp8,vorbis" 一個包含 VP8 影片和 Vorbis 音訊的 WebM 容器。
video/webm;codecs="vp9,opus" 一個包含 VP9 影片和 Opus 音訊的 WebM 容器。

字串 vp8.0vp9.0 也可以使用,但不推薦。

使用 codecs 引數

你可以在幾種情況下使用 codecs 引數。首先,你可以在建立 <audio><video> 元素時,與 <source> 元素一起使用,以便為瀏覽器在選擇向用戶呈現的媒體格式時提供一組選項。

你還可以在向 MediaSource.isTypeSupported() 方法指定 MIME 媒體型別時使用 codecs 引數;此方法返回一個布林值,指示媒體是否可能在當前裝置上工作。

另見