我正在使用Github的官方自定义接收器,并且正在尝试播放受 MPEG-DASH Widevine 保护的视频流。Receiver 在 Nexus Player 5.1.1 上运行。我正确设置了 customData 和许可证服务器 url。问题是播放器(DRM 组件)未正确生成向许可证服务器发出 POST 请求所需的数据。此数据应使用来自PSSH 框的数据生成,并包含有关 DRM 客户端的信息等。下面是几乎空的 POST 请求(省略了一些 CORS 特定的标头),请求正文仅包含两个字节(08 04)
POST XYZ HTTP/1.1
Host: XYZ
Connection: keep-alive
Content-Length: 2
Origin: ABC
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; Nexus Player Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.75 Safari/537.36 CrKey/1.13.31432
content-type: text/xml;charset=utf-8
Accept: */*
Referer: http://ABC/ftp-custom/CastMediaPlayerStreamingDRM/mpl.html
Accept-Encoding: gzip, deflate
Accept-Language: en-GB
CAST-DEVICE-CAPABILITIES: {"display_supported":true}
..
正确的请求正文(在 Windows / Chrome 上)应如下所示(在请求正文中省略“非人类可读”内容)
POST XYZ HTTP/1.1
Host: XYZ
Connection: keep-alive
Content-Length: 1763
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
Origin: http://shaka-player-demo.appspot.com
Accept: */*
Referer: http://shaka-player-demo.appspot.com/
Accept-Encoding: gzip, deflate
Accept-Language: cs,en;q=0.8
ChromeCDM-Windows-x86
architecture_name x86-32
company_name Google
model_name ChromeCDM
platform_name Windows2
感谢您提供任何如何使其正常工作的方法。