微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果高清许可证密钥不可用,则多密钥 Widevine DRM 保护内容的播放将失败

如何解决如果高清许可证密钥不可用,则多密钥 Widevine DRM 保护内容的播放将失败

我正在尝试实现一个流媒体系统,其中 DASH 内容使用多个密钥加密:一个用于标清和音频播放,另一个用于高清。我想限制对支持更高安全级别的客户端(Widevine 的 L1 和 PlayReady 的 SL3000)的客户端的访问权限

基于 DASH implementation guidelines(以及 PlayReady documentation 和其他),我的理解是推荐的设置应如下所示:

  • 所有客户端都提供了一个 MPD 清单,包括标清和高清再现,以及 PSSH 标头,包括两者的内容密钥 ID。
  • 客户端从 DRM 服务器请求两个许可证。
  • DRM 服务器:
    • 返回两个许可证,为每个许可证指定所需的安全级别;或:
    • 标识客户端安全级别,并且只返回它应该能够使用的密钥。
  • 在任何一种情况下,客户端都会确定它可以使用哪些密钥,并仅使用具有有效和可用许可证密钥的那些再现开始播放,并忽略没有有效许可证密钥的再现。

问题 1:我对最佳实践的理解是否正确?

假设是:我试图基于上述内容创建一个概念验证,但它似乎不起作用。我用过:

  • Google Chrome(仅支持 Widevine L3 - 最低安全级别)
  • DASH 参考播放器、JWPlayer 流测试器和 Shaka 播放器演示
  • 使用两个密钥加密的资产
  • 我可以修改的 Widevine 许可证服务器代理

根据我配置的 Widevine 代理返回的内容,我看到了以下内容

  • L3 的标清和高清键:播放成功。
  • L3 上的标清键,而没有高清键:播放失败并显示错误
{
    "hasAppRestrictions": false,"missingKeys": [
        "6d76f25cb17f5e16b8eaef6bbf582d8e"
    ],"restrictedKeyStatuses": []
}
  • L3 的 SD 键和 L1 的 HD 键:播放失败并显示错误
{
    "hasAppRestrictions": false,"missingKeys": [],"restrictedKeyStatuses": [
        "internal-error"
    ]
}
{
    "hasAppRestrictions": false,"restrictedKeyStatuses": [
        "output-restricted"
    ]
}

问题 2: 以上是因为我测试过的播放器没有完全实现 DASH 规范吗?还是我的设置或假设有问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。