我想确定一个DASH清单网址是否使用ExoPlayer进行DRM保护-但是我似乎找不到在这方面可以帮助我的东西。
我可以看到,您可以在ExoPlayer中使用SmoothStreaming来实现这一点,因为有一个protection element。
只是想知道以前有没有人遇到过这种情况?
发布于 2018-10-04 00:51:36
破折号清单本身包含一个指示内容是否受保护的元素。
例如,下面是一个PlayReady指示(来自MS文档):
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”>
<cenc:pssh>
<!-- *base64-encoded PlayReady ‘pssh’ complete box* -->
</cenc:pssh>
<mspr:pro>
<!-- *base64-encoded PlayReady Object* -->
</mspr:pro>
</ContentProtection>单个媒体的“块”URL可以是模糊的或随机的,因此这些URL本身并不能真正帮助传达这些信息。
ExoPlayer检查了清单中的保护指示。你可以在'DashManifestParser‘类中看到它被解析--例如:
else if (XmlPullParserUtil.isStartTag(xpp, "ContentProtection")) {
Pair<String, SchemeData> contentProtection = parseContentProtection(xpp);
if (contentProtection.first != null) {
drmSchemeType = contentProtection.first;
}
if (contentProtection.second != null) {
drmSchemeDatas.add(contentProtection.second);
}这是一个需要注意(或警惕的..)规范说媒体受保护的事实可以在清单和/或媒体本身中指明-即ISO文件中有一个‘框’,可以在其中指定保护方案信息。
从理论上讲,这意味着你可以在任何一个地方指定行程,但实际上并不是所有的播放器都是这样实现的--一些播放器,包括过去的ExoPlayer,如果媒体流受到保护,就不会播放,但清单没有指明这一点。
https://stackoverflow.com/questions/52612274
复制相似问题