首页 > 解决方案 > 在播放器中使用 HLS 和 DASH + DRM 的推荐方式是什么?

问题描述

我正在使用 VideoJS 播放器并有一个 CMAF 视频,所以我使用的是 HLS 和 DASH。我也在使用所有 3 种类型的 DRM。适用于 hls 的 Fairplay,widevine 和 playready 的 dash。

我的问题是我是否应该在播放器中同时包含 hls 和 dash 源并让播放器决定播放哪一个?还是我检测浏览器并仅基于此插入正确的 url?DRM 也是一样的。我可以将所有 DRM 添加到播放器吗?还是我应该只添加适用的一项?

标签: http-live-streamingvideo.jsdrmmpeg-dashfairplay

解决方案


HLS 与 DASH 的使用通常由终端设备和客户端功能和规则决定。

iOS 和 Safari 通常使用 HLS 和 FairPlay,Android、Firefox 和 Chrome 使用 DASH 和 Widevine,Windows 和 Edge 使用 DASH 和 PlayReady。

请注意,Widevine 和 PlayReady 可以使用相同的 DASH 流 - CENC,通用加密标准,允许相同的流包含 Widevine 和 PlayReady DRM 信息。

目前,Apple iOS 设备必须对移动网络上超过 10 分钟的内容使用 HLS:

2.5.7 蜂窝网络上超过 10 分钟的视频流内容必须使用 HTTP Live Streaming 并包括基线 192 kbps HTTP Live 流。

https://developer.apple.com/app-store/review/guidelines/

因此,提供给 Apple 设备的流通常是 HLS,而 DASH 用于其他设备。

CMAF 允许将相同的分段媒体流同时用于 HLS 和 DASH,从而大大减少了这种影响,而只有“索引”或清单文件特定于每个协议。

对于加密的内容,它有点复杂。此时,FairPlay 使用不同于使用 AES-CTR 的 Widevine 和 PlayReady 的 AES 加密模式 AES CBC。这意味着您仍然需要两个媒体副本来提供加密的内容流。

随着 Widevine 和 PlayReady 现在宣布支持 AES-CBC 和 AES-CTR,这种情况正在发生变化,但是这需要一些时间才能推广到已部署的设备。


推荐阅读