【问题标题】:How to use DRM License for ExoPlayer in Dash.js or similar如何在 Dash.js 或类似文件中使用 ExoPlayer 的 DRM 许可证
【发布时间】:2022-06-25 03:14:12
【问题描述】:

我有一位客户要求我提供一个用于播放流视频的 Android 应用程序。他有视频的链接和 DRM 许可证的 url,它们位于这样的对象中:

    "n": {
    "drm_license_url": "\thttps://sp-supplier.supplier.com/?deviceId=SoMeALphaNUmericakStuFF=",
    "drm_scheme": "widevine",
    "icon": "https://blogger.googleusercontent.com/img/some-logo.png",
    "name": "ANY NAME",
    "uri": "https://supplier-supplier-sl.supplier.com/live/c6eds/VIDEO/SA_Live_dash_enc_2A/SOMEVIDEO.mpd"
  },

在阅读了一些 ExoPlayer 库之后,我成功地播放了视频。

现在他也想在网络上播放相同的视频,所以在阅读后我意识到我需要使用 dash.js 或类似的 MPD / m3u0 播放器,它们也接受 DRM 许可证保护。 我已经阅读了 make it 的文档,但是为了通过 DRM 许可证,我必须创建以下内容时出现了问题:

var protData = {
        "com.widevine.alpha": {
            "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense",
            "httpRequestHeaders": {
                "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU"
            },
            priority: 0
        }

(来源:https://reference.dashif.org/dash.js/latest/samples/drm/widevine.html

现在,我知道我必须在密钥 serverUrl 中传递相同的许可证 URL,但是关于标头,我真的不知道我必须将哪个值传递给密钥 X-AxDRM-Message,因为我没有那个,也不是客户。

我尝试使用dash提供的预建播放器进行测试,您可以在其中选择参数,包括DRM许可证,但出现以下错误:

DRM:许可人错误! --com.widevine.alpha 更新,XHR 错误。状态是 "" (0), readyState 为 4

我的问题是:

  • 我是否需要 DRM 供应商提供更多信息才能运行 网络上的相同视频?
  • 有任何方法可以使用以下方法创建 protData 对象 我已有的信息?
  • 我可以这样做还是我使用了错误的库?

谢谢! 马蒂亚斯

【问题讨论】:

    标签: javascript android exoplayer drm dash.js


    【解决方案1】:

    该服务很可能需要用户身份验证和/或许可证请求中包含的令牌。

    此功能很可能内置于应用程序中,因此它包含身份验证后的令牌。在这种情况下,您将无法简单地复制和粘贴许可请求。

    为了进一步探索和验证,Microsoft Azure 提供了有关 DRM 集成的良好文档,不仅适用于其自己的 PlayReady DRM,也适用于 Widevine。

    你可以在他们的页面上看到一个令牌认证的例子:

    如果您阅读随附的文档,您可以了解令牌在各种场景中的使用方式:https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-protect-with-playready-widevine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 2019-02-12
      • 2017-08-14
      • 2017-11-15
      • 2019-06-28
      • 2022-03-01
      • 2020-03-07
      相关资源
      最近更新 更多