Chrome 70 版媒體更新

François Beaufort
François Beaufort

使用子母畫面觀看影片

使用者可透過子母畫面 (PiP) 功能,在浮動式視窗 (一律位於其他視窗上方) 中觀看影片,這樣一來,他們就能在與其他網站或應用程式互動時,繼續觀看影片。有了新的Picture-in-Picture Web API,您就能在網站上啟動及控制 Picture-in-Picture 功能。

請參閱我們的文章瞭解所有相關資訊。

AV1 解碼器

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

如要試用 AV1:

  1. 前往 YouTube TestTube 頁面
  2. 選取「SD 優先使用 AV1」或「一律偏好 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 Bug

MP4 中的 Opus (MSE)

自 Chrome 33 起,<audio><video> 元素已支援開放且功能多元的音訊轉碼器 Opus。之後則新增了 ISO-BMFF 中的 Opus 支援功能 (又稱為 MP4 中的 Opus)。MP4 中的 Opus 現已支援 Chrome 70 的媒體來源擴充功能

如要偵測 MSE 是否支援 MP4 中的 Opus,請按照下列步驟操作:

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

如需完整範例,請參閱官方範例

由於缺乏用於在 MP4 中以正確的結尾修剪和預跳值 mux Opus 的工具,如果您重視這類精確度,就必須在 Chrome 中使用 SourceBuffer.appendWindow{Start,End}SourceBuffer.timestampOffset,才能獲得取樣精確的播放效果。

Intent to Ship | Chromestatus Tracker | Chromium Bug

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

在 Android 版 Chrome 70 中,「受保護內容」網站設定的預設值已從「先詢問」變更為「允許」,降低播放這類媒體的摩擦力。之所以會發生這項異動,部分原因是為了同時清除媒體授權以及 Cookie 和網站資料採取的額外步驟,確保網站不會使用媒體授權來追蹤已清除瀏覽資料的使用者。

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