问题标签 [playready]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
330 浏览

video-streaming - 如果 HD 许可证密钥不可用,则播放受 Widevine DRM 保护的多密钥内容将失败

我正在尝试实现一个流系统,其中 DASH 内容使用多个密钥进行加密:一个用于 SD 和音频再现,一个用于 HD。我想限制对支持更高安全级别的客户端(L1 用于 Widevine,SL3000 用于 PlayReady)的高清再现

根据DASH 实施指南(以及PlayReady 文档等),我的理解是推荐的设置应如下所示:

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

Q1:我对最佳实践实施的理解是否正确?

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

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

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

  • L3 SD & HD 键:播放成功。
  • L3 上的 SD 键且没有 HD 键:播放失败并出现以下错误:
  • L3 的 SD 键和 L1 的 HD 键:播放失败并出现以下错误:
  • L3 的两个键,但 HDCP_V2 的 HD 键:播放失败并出现错误:

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

0 投票
1 回答
146 浏览

http-live-streaming - 如何从 pssh 构建 PlayReady 对象

我用于 PlayReady 的 PSSH-Box 以 base64 和十六进制格式显示在下方。

我在清单中使用 mspr:pro 标记。据我了解,在使用 mspr:pro 时,您输入的是 PlayReady Object 而不是 PSSH-Box (对于 PSSH-BOX cenc:ppsh 标签,在 manifest 中使用)。

如何从 PSSH 构建 Playready 对象?

0 投票
0 回答
35 浏览

android - 如何在 Fire TV 网络平台或 WebView 上使用 PlayReady?

根据亚马逊的文档

问:Amazon Fire TV 的网络应用程序能否支持媒体播放的数字版权管理 (DRM)?

Web 应用平台支持 Widevine 和 PlayReady 的 DRM。有关对原生 FireTV 应用程序的 DRM 支持的详细信息,请参阅 Fire TV 设备规范页面的DRM部分。

但是,当navigator.requestMediaKeySystemAccess从 Web 应用程序(通过 Web App Tester)或WebView(通过 Cordova)调用时,请求仅对 WideVine 成功。

成功:

失败:

错误nameNotSupportedError,这意味着(根据MDN)不支持 PlayReady,尽管亚马逊的文档说明它是。

0 投票
1 回答
135 浏览

node.js - Azure 媒体服务 Widevine 和 PlayReady DRM 错误:无法解密加密的视频源 0x20500004

我正在尝试使用 Azure 媒体服务上传视频文件并使用 DRM 进行流式传输,到目前为止,我设法上传了文件,获取了流式 URL 并获取了令牌,但是当尝试在http://ampdemo.azureedge 上播放它时。净/我收到一个错误

现在已经搜索了几个小时来寻找可能导致问题的原因,但没有找到任何帮助。我使用了这个 repo(并将密钥更改为我自己的)

https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/StreamFilesWithDRMSample/index.ts

此外,我创建了一个名为 CommonEncryptionCencDrmContentKeyPolicy 的内容密钥策略,其许可证类型为 PlayReady 和限制类型令牌

任何人都可以帮助并分享我在这里缺少什么吗?

谢谢!