確保所有裝置都能流暢播放影片。
在使用 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 的運作方式。