YouTube 如何透過 Media Capabilities API 提高影片成效

確保在所有裝置上都能流暢播放影片。

法蘭索瓦博福特
François Beaufort

在運用 Media Capabilities API 的實驗中,YouTube 的 MTBR 增加了 7.1%,而放送的影片平均解析度則降低了 0.4%。

問題說明

一般而言,媒體網站會為使用者提供每部影片的多個變化版本,分別採用不同的畫面更新率、解析度和轉碼器。不久之前,網頁程式開發人員只須仰賴 isTypeSupported()canPlayType(),才能判斷每個變化版本是否能在使用者的瀏覽器中播放。雖然這告知開發人員是否能夠播放媒體,但並未提供播放品質指標,例如是否有影格遺失或裝置電池耗電問題。如果沒有這項資訊,開發人員必須建立自己的經驗法則,或直接假設裝置可以播放轉碼器/解析度組合,才能順暢且省電。對於裝置功能較差的使用者,經常導致使用體驗不佳。

解決方法

Media Capabilities API 可讓網站取得更多有關用戶端影片解碼效能的資訊,並在充分掌握資訊的情況下,決定要向使用者提供的轉碼器和解析度。具體來說,這個 API 會向開發人員提供特定轉碼器和解析度組合的流暢性和電池效能預估結果。這可讓開發人員避免用戶端可能造成播放體驗不佳的情況。

在 Chrome 中,Media Capabilities API 會使用先前播放作業的指標,預測日後使用相同的轉碼器和解析度播放時,系統能否順暢地解碼。

YouTube 個案研究

YouTube 使用 Media Capabilities API 來防止自動調整位元率演算法自動選取裝置無法順暢播放的解析度。

屬於實驗群組的使用者,重新緩衝處理的頻率較低 (重新緩衝間隔 (或 MTBR) 的平均時間增加 7.1%),而平均解析度 (依影片高度評估) 提供給匯總群組的使用者則只減少 0.4%。MTBR 的大幅成長幅度較小,對應的平均解析度下降表示這項變更大幅改善了過去有少數使用者體驗的少數使用者。

在網站上導入 Media Capabilities API

如要查看 Decoding Info API 的運作方式,請參閱官方範例