- 網頁開發人員可以控制影片的子母畫面。
- Chrome 電腦版 x86-64 現已支援 AV1 解碼器。
- MSE 可進行跨編解碼器和跨位元組串緩衝和播放。
- Chrome 現已支援使用 MSE 的 MP4 格式 Opus。
- 在 Android 上,系統預設允許播放受保護的內容。
使用子母畫面觀看影片
使用者可透過子母畫面 (PiP) 功能,在浮動式視窗 (一律位於其他視窗頂端) 中觀看影片,這樣一來,他們就能在與其他網站或應用程式互動時,繼續觀看影片。有了新的Picture-in-Picture Web API,您就能在網站上啟動及控制 Picture-in-Picture 功能。
詳情請參閱這篇文章。
AV1 解碼器
AV1 是開放媒體聯盟開發的新一代編解碼器。AV1 的壓縮效率比目前最先進的影片轉碼器 VP9 高出 30%。Chrome 70 會根據官方位元組串規格,在 Chrome 電腦版 x86-64 中新增 AV1 解碼器。目前僅支援「主」設定檔 0,且不包含編碼功能。支援的容器為 MP4 (ISO-BMFF)。如要簡單瞭解容器,請參閱「從原始影片到網路就緒」一文。
如要試用 AV1:
- 前往 YouTube TestTube 頁面。
- 選取「Prefer AV1 for SD」或「Always Prefer AV1」,即可取得所需的 AV1 解析度。請注意,在較高解析度下,AV1 在部分裝置上更有可能發生播放效能問題。
- 請嘗試播放 AV1 測試版推出播放清單中的 YouTube 短片。
- 在「統計資料」中確認轉碼器 av01。
![統計資料:YouTube 中的 AV1。](https://developer.chrome.google.cn/static/blog/chrome-70-media-updates/image/stats-nerds-featuring-av-d362f25a7912f.png?hl=zh-tw)
支援 MSE 中的編解碼和容器切換
Chrome 新增支援Media Source Extensions 播放時的跨編解碼或跨位元流轉場效果,方法是使用 SourceBuffer
上的新 changeType()
方法。這可讓附加至 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 | Chrome 狀態追蹤器 | Chromium 錯誤
MSE 適用的 MP4 中的 Opus
自 Chrome 33 起,<audio>
和 <video>
元素已支援開放且功能多元的音訊轉碼器 Opus。之後,我們也新增了 ISO-BMFF 中的 Opus 支援功能 (又稱為 MP4 中的 Opus)。如今,Chrome 70 已支援 MP4 格式的 Opus 檔案,可用於媒體來源擴充功能。
以下說明如何偵測 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 | Chrome 狀態追蹤器 | Chromium 錯誤
預設允許在 Android 上播放受保護的內容
在 Android 版 Chrome 70 中,「受保護內容」網站設定的預設值已從「先詢問」變更為「允許」,降低播放這類媒體的摩擦力。這項異動之所以可行,部分原因在於我們採取額外步驟,一併清除媒體授權和 Cookie 與網站資料,確保網站不會使用媒體授權追蹤已清除瀏覽資料的使用者。
![Android 中的受保護內容設定。](https://developer.chrome.google.cn/static/blog/chrome-70-media-updates/image/protected-content-setting-5c025d9ded9cc.png?hl=zh-tw)