确保视频在所有设备上都能流畅地播放。
在一项 Media Capabilities API 实验中,YouTube 的 MTBR 提高了 7.1%,所投放视频的平均分辨率只降低了 0.4%。
问题
通常,媒体网站会为每个视频提供多个变体,以不同的帧速率、分辨率和编解码器进行编码并向用户呈现。直到最近,Web 开发者只能依靠 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 的工作原理,请查看官方示例。