Chrome 70 版媒體更新

François Beaufort
François Beaufort

使用子母畫面觀看影片

子母畫面 (PiP) 功能可讓使用者在浮動視窗中 (一律位於其他視窗上方) 觀看影片,以便在與其他網站或應用程式互動時隨時留意正在觀看的影片。有了新的子母畫面 Web API,您就可以為網站上的影片啟動及控管子母畫面功能。

如要瞭解詳細資訊,請參閱我們的文章

AV1 解碼器

AV1 是由 Alliance for Open Media 開發的新一代轉碼器。與目前最先進的影片轉碼器 VP9 相比,AV1 可將壓縮效率提高超過 30%。Chrome 70 根據官方位元串流規格,在 Chrome 電腦版 x86-64 中新增 AV1 解碼器。目前支援僅限於「主要」設定檔 0,且不包含編碼功能。支援的容器為 MP4 (ISO-BMFF) (如需容器的簡短說明,請參閱容器和轉碼器)。

如要試用 AV1:

  1. 前往 YouTube TestTube 頁面
  2. 選取「偏好以 AV1 處理 SD 標準畫質」或「一律偏好使用 AV1」,即可取得所需的 AV1 解析度。請注意,在解析度較高的情況下,AV1 較有可能在某些裝置上發生播放效能問題。
  3. 請嘗試播放 AV1 Beta 版發布播放清單中的 YouTube 短片。
  4. 確認「統計資料」中的轉碼器 av01。
YouTube 中 AV1 人物的統計資料
YouTube 上 AV1 創作者的統計資料。

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 例外狀況。

請參閱範例,瞭解如何使用跨轉碼器和跨位元組串流緩衝處理及播放音訊元素。

Intent to Ship | Chromestatus Tracker | Chromium 錯誤

MP4 中的 MSE 專用 Opus

自 Chrome 33 起,<audio><video> 元素都支援開放且功能靈活的音訊轉碼器 Opus。隨後新增了 ISO-BMFF 中的 Opus 支援 (也稱為 MP4 中的 Opus)。此外,現在 MP4 中的 Opus 已在 Chrome 70 中提供,適用於媒體來源擴充功能

以下說明如何偵測 MP4 中的 Opus 是否支援 MSE:

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,才能取得準確的樣本播放。

Intent to Ship | Chromestatus Tracker | Chromium 錯誤

允許在 Android 上預設播放受保護的內容

在 Android 70 版 Chrome 第 70 版中,「受保護內容」網站設定的預設值會從「先詢問我」變更為「允許」,降低這類媒體播放過程中的不便。您可能會因為採取額外步驟來清除媒體授權以及 Cookie 和網站資料,確保網站不會使用媒體授權來追蹤已清除瀏覽資料的使用者。

ALT_TEXT_HERE
Android 中的受保護內容設定。