【发布时间】: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