我正在用AWS Lambda+Serverless构建Widevine许可代理,并通过Shaka播放器使用标准内容进行测试:
https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd
ContentKey
API工作得很好,但是如果我尝试使用Lambda端点作为带有CENC编码DRM内容的许可证URL,那么回放就会失败,因为Shaka播放器试图创建一个
CONNECT
在Lambda中失败的请求
Unsupported HTTP method
POST
请求
SERVICE_CERTIFICATE
工作,第二个和
PAYLOAD
请求证书失败。
具体来说:
curl -H 'Host: drm.*****.com:443' -H 'Proxy-Connection: keep-alive' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' -X CONNECT 'https://drm.******.com'
分析查尔斯的交通状况,失败是:
Client SSL handshake failed - Remote host closed connection during handshake
结果是
.
因此,Shaka播放器请求密钥将资产解密到Widevine许可证URL,在Lambda和API网关后面执行。Shaka播放器对服务证书(payload CAQ=)的第一个POST请求生效。第二个请求(来自Shaka播放器的许可证请求)在CONNECT步骤阻塞,然后使用来自API网关的不受支持的HTTP方法响应关闭连接。
关于如何让许可证服务器工作有什么想法吗?