YouTube 如何利用 Media Capabilities API 提升视频性能

确保在所有设备上都能顺畅地播放视频。

弗朗索瓦·博福
François Beaufort

在对 Media Capabilities API 进行的实验中,YouTube 发现所投放视频的平均分辨率 (MTBR) 提高了 7.1%,而平均分辨率仅降低了 0.4%。

问题

通常,媒体网站可向用户呈现每个视频的多种变体,按不同的帧速率、分辨率和编解码器进行编码。直到最近,Web 开发者必须仅依靠 isTypeSupported()canPlayType() 来确定各个变体能否在单个用户的浏览器中运行。虽然这个 ID 可以告知开发者是否可以播放媒体,但它没有提供播放质量的指示,例如是否会有丢帧或设备耗电过快等情况。如果没有这些信息,开发者要么必须创建自己的启发法,要么只是假设设备可以播放编解码器/分辨率组合,实现流畅且省电。对于设备性能不佳的用户,这通常会导致糟糕的体验。

解决方法

借助 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 的工作原理,请参阅官方示例