- 網頁開發人員可以控管影片的子母畫面功能。
- Chrome 電腦版 x86-64 現已支援 AV1 解碼器。
- MSE 可跨轉碼器和跨位元組串流緩衝處理及播放。
- Chrome 現在支援 MP4 中的 Opus (搭配 MSE)。
- Android 裝置預設允許播放受保護內容。
使用子母畫面觀看影片
子母畫面 (PiP) 可讓使用者在浮動視窗中觀看影片 (永遠顯示在其他視窗上方),這樣一來,使用者就能一邊與其他網站或應用程式互動,一邊觀看影片。有了全新的 Picture-in-Picture Web API,您就能在網站上啟動及控制影片的子母畫面功能。
詳情請參閱這篇文章。
AV1 解碼器
AV1 是由開放媒體聯盟開發的下一代轉碼器。AV1 比目前最先進的影片轉碼器 VP9,壓縮效率提升超過 30%。Chrome 70 會根據官方位元串流規格,在 Chrome 桌面版 x86-64 中新增 AV1 解碼器。目前僅支援「主要」設定檔 0,不支援編碼功能。支援的容器為 MP4 (ISO-BMFF) (如需容器的簡要說明,請參閱「從原始影片到可供網路使用的影片」)。
如要試用 AV1,請按照下列步驟操作:
- 前往 YouTube TestTube 頁面。
- 選取「偏好以 SD 標準畫質播放 AV1 格式的影片」或「一律偏好 AV1」,即可取得所需的 AV1 畫質。請注意,在較高解析度下,部分裝置可能無法順暢播放 AV1 影片。
- 請嘗試播放 AV1 Beta Launch Playlist 中的 YouTube 短片。
- 在「統計資料」中確認轉碼器為 av01。
支援 MSE 中的轉碼器和容器切換
Chrome 新增支援,可透過 SourceBuffer 的新 changeType() 方法,在 Media Source Extensions 播放期間,改善跨轉碼器或跨位元串流的轉換。這項功能可讓您在之後變更附加至 SourceBuffer 的媒體位元組類型。
目前版本的 MSE 支援媒體的自適應播放功能,但自適應功能要求附加至 SourceBuffer 的任何媒體,都必須符合透過 MediaSource.addSourceBuffer(type) 建立 SourceBuffer 時提供的 MIME 類型。該類型的轉碼器和先前剖析的任何初始化區隔,都必須維持不變。也就是說,網站必須採取明確步驟來完成轉碼器或位元串流切換 (使用多個媒體元素或 SourceBuffer 軌,並在這些元素/軌之間切換),這會增加應用程式複雜度和使用者可見的延遲時間。(這類轉場效果需要網頁應用程式在轉譯器主執行緒上採取同步動作)。這項轉換延遲會影響媒體在轉換期間的播放流暢度。
透過新的 changeType() 方法,SourceBuffer 可以緩衝及支援不同位元組串流格式和轉碼器的播放作業。這項新方法會保留先前緩衝的媒體,但日後可能會因 MSE 編碼影格逐出或移除而有所變動,並運用現有 MSE 編碼影格處理演算法中的拼接和緩衝邏輯。
changeType() 方法的使用方式如下:
const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);
// Later on...
if ('changeType' in sourceBuffer) {
// Change source buffer type and append new data.
sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
sourceBuffer.appendBuffer(someMp4AacAvcData);
}
如預期,如果瀏覽器不支援傳遞的型別,這個方法會擲回 NotSupportedError 例外狀況。
請參閱範例,瞭解如何使用跨轉碼器和跨位元組串流緩衝區,以及播放音訊元素。
出貨意圖 | Chromestatus 追蹤工具 | Chromium 錯誤
適用於 MSE 的 MP4 格式 Opus
自 Chrome 33 起,開放且用途廣泛的音訊轉碼器 Opus 已在
<audio> 和 <video> 元素中受到支援。之後新增了ISO-BMFF 中的 Opus 支援 (又稱 MP4 中的 Opus)。現在,Chrome 70 的 Media Source Extensions 支援 MP4 中的 Opus。
如要偵測 MSE 是否支援 MP4 中的 Opus,請按照下列步驟操作:
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
如需完整範例,請參閱官方範例。
由於缺乏工具,無法在 MP4 中多工處理 Opus,並提供正確的結尾修剪和預先跳過值,因此如果這類精確度對您來說很重要,您必須在 Chrome 中使用 SourceBuffer.appendWindow{Start,End} 和 SourceBuffer.timestampOffset,才能取得精確到樣本的播放效果。
出貨意圖 | Chromestatus 追蹤工具 | Chromium 錯誤
預設允許在 Android 裝置上播放受保護內容
在 Android 版 Chrome 70 中,「受保護內容」網站設定的預設值會從「先詢問」變更為「允許」,減少播放這類媒體時的阻力。這項變更之所以可行,部分原因在於我們採取了額外步驟,在清除 Cookie 和網站資料時一併清除媒體授權,確保網站不會使用媒體授權追蹤已清除瀏覽資料的使用者。