代码之家  ›  专栏  ›  技术社区  ›  andrea-f

带AWS Lambda的Widevine HTTP代理

  •  0
  • andrea-f  · 技术社区  · 7 年前

    我正在用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方法响应关闭连接。

    关于如何让许可证服务器工作有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   andrea-f    7 年前

    因此,经过更多的研究,我发现不能使用Serverless和AWS Lambda来完成,因为Shaka播放器(例如)加载CENC内容所使用的HTTP方法不受支持。

    推荐文章