我正在使用VideoJS播放器,并且有一个CMAF视频,所以我正在使用HLS和DASH。我也在使用所有3种DRM。HLS的Fairplay,dash的widevine和playready。
我的问题是,我是否应该在播放器中同时包含hls和dash源,让播放器决定播放哪一个?还是我检测浏览器,然后只根据浏览器插入正确的网址?另外DRM也是一样的。我可以直接把所有的DRM都添加到播放器中吗?还是我应该只添加适用的那一个?
HLS和DASH的使用通常由终端设备和客户端的功能和规则决定。
iOS和Safari通常使用HLS和FairPlay,Android,Firefox和Chrome使用DASH和Widevine,Windows和Edge使用DASH和PlayReady。
需要注意的是,Widevine和PlayReady可以使用相同的DASH流--CENC,即Common Encryption标准,允许同一个流同时包含Widevine和PlayReady的DRM信息。
目前,苹果iOS设备在移动网络上播放大于10分钟的内容必须使用HLS。
2.5.7 通过蜂窝网络超过10分钟的视频流内容必须使用HTTP Live Streaming,并包含一个基线192 kbps的HTTP Live流。
(https:/developer.app-storereviewguidelines。)
由于这个原因,向苹果设备提供的媒体流通常是HLS,而DASH则用于其他设备。
CMAF通过允许HLS和DASH使用相同的分段媒体流,大大降低了这种影响,只是 "索引 "或manifest文件是针对每个协议的。
对于加密的内容来说,就比较复杂了。目前,FairPlay使用了不同的AES加密模式,AES CBC,而Widevine和PlayReady使用的是AES-CTR。这意味着您仍然需要两个媒体副本来提供加密内容流。
这种情况正在发生变化,因为Widevine和PlayReady现在已经宣布支持AES-CBC以及AES-CTR,但这需要一些时间才能推广到已部署的设备上。