0

我遇到了同样的问题,Widevine 需要 Provisioning 请求。

“最好将配置请求报告为第一个许可请求,应用程序将为您发送 HTTP POST。然后,一旦收到配置响应,您就可以将真正的许可请求作为未经请求的许可请求发送”

您的意思是使用 SbDrmSessionUpdateRequestFunc 向页面发送消息,让页面向配置服务器发送配置请求并获得配置响应吗?youtube页面或质量页面有这个逻辑吗?

Drm 流程如下,对吗?如果不对,可以给我详细的过程吗?

SbDrmCreateSystem -> SbDrmGenerateSessionUpdateRequest -> SbDrmSessionUpdateRequestFunc(使用有效票证和有效 session_id 发送配置请求)-> SbDrmUpdateSession(更新对 CDM 的配置响应)-> SbDrmSessionUpdatedFunc(如果需要此回调?)-> SbDrmSessionUpdateRequestFunc(无效票证和有效 session_id发送真实的许可请求)-> SbDrmUpdateSession(更新对 CDM 的许可响应)-> SbDrmSessionUpdatedFunc(通知许可成功)

但是当我调用 SbDrmSessionUpdateRequestFunc 将配置 url 和消息发布到页面时,页面不使用我发布到它的 url。它是 Eme qual 页面上页面上的固定值。

该页面是 https://yt-media-test.appspot.com/2018.html?test_type=encryptedmedia-test&command=off&disable_log=true×tamp=1517552801994 运行第一个测试用例,许可证服务器是文件页面上的固定值 https://yt-media-test.appspot.com/js/lib/streams/mediaStreams-20180119121527.js

VideoSmallCenc: ['//yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/media/oops_cenc-20121114-142.mp4', 8017271, 242.71, { 'mimeType': 'video/mp4; codecs="avc1.4d4015"', 'video_id': '03681262dc412c06', 'playready_signature': '448279561E2755699618BE0A2402189D4A30B03B.0CD6A27286BD2DAF00577FFA21928665DCD320C2', 'widevine_signature': '9C4BE99E6F517B51FED1F0B3B31966D3C5DAB9D6.6A1F30BB35F3A39A4CA814B731450D4CBD198FFD'}], VideoMultiKeyCenc: ['//yt-dash-mse -test.commondatastorage.googleapis.com/unit-tests/media/tears_h264_main_720p_1500.mp4', 105466539, 734.17, {'mimetype':'video/mp4; codecs="avc1.4d401f"', 'pssh': util.createUint8ArrayFromJSArray([0, 0,https://proxy.staging.widevine.com/proxy '}],

4

1 回答 1

0

使用SbDrmSessionUpdateRequestFunc回调请求配置是合法的,并且您的流程看起来正确。

也就是说,Web 应用程序可能会忽略更新请求中提供的 URL,并使用它们自己的逻辑来执行配置。您似乎希望 yt-media-test 执行它未能执行的配置。要解决此问题,您可以 1) 在运行 EME 测试之前使用 youtube.com/tv(已知可以正确实施配置流程)配置设备,或 2) 执行您自己的配置。

有关 yt-media-test 的问题,请联系您的 YouTube 客户经理。

于 2018-02-02T17:51:33.280 回答