提问人:krt 提问时间:1/18/2023 更新时间:7/3/2023 访问量:143
Chromecast Shaka 播放器重复许可证
Chromecast Shaka player duplicate licences
问:
我们的许可证服务器启用了 JWT JTI 密钥进行反重放,在我们的 chomecast 上,我们看到设备请求许可证两次以上(如果是两次,我可以看看也许第一个请求是服务器证书 - 但对于 chromecast 来说,这似乎不是一回事),这会触发 JTI 反重放。我看到当前版本的强制转换固件使用 shaka 3.2.0,并且针对 3.0.2 的 Widevine(或类似)修复了此问题。
想知道是否有人在玩家不止一次请求许可证的 chromecast 上解决了类似的问题?
谢谢
预计 chromecast 播放器会请求一次许可证。
答:
如果要阻止 Shaka 播放器 Chromecast 插件多次请求 Widevine 许可证,可以使用持久许可证请求。这意味着插件请求许可证一次,并在播放期间重复使用它。若要启用持久性许可证请求,可以在播放器配置中将“persistentStateRequired”属性设置为 true。
像这样的东西
// Configure the Shaka player
const player = new shaka.cast.CastReceiver(playerManager, YOUR_APP_ID);
player.configure({
manifest: YOUR_MANIFEST_URL,
streaming: {
rebufferingGoal: 2,
bufferingGoal: 5,
bufferBehind: 30,
},
// Set persistentStateRequired to true to enable persistent license requests
persistentStateRequired: true
});
可以在 player.configure() 方法中将 persistentStateRequired 属性设置为 true,以启用持久性许可证请求。这会告诉插件请求一次 Widevine 许可证,并在播放期间重复使用它。
请参阅文档 https://shaka-player-demo.appspot.com/docs/api/shaka.extern.html#.PlayerConfiguration
尤其是这一点
AdvancedDrmConfiguration
persistentStateRequired boolean 默认为 false。 如果应用程序需要密钥系统来支持持久状态,例如,对于持久性许可证存储,则为 True。
在代码 https://shaka-player-demo.appspot.com/docs/api/externs_shaka_player.js.html 中搜索 persistentState
除非许可证缓存(持久化)在应用程序中,否则 Widevine 会为每个资产发出两个单独的请求:
- 服务证书申请
- 许可证申请
在第一次检查时,它们看起来非常相似,并且可能会使您认为它们是重复的,但如果您查看有效负载,则与许可证请求相比,服务证书请求的大小(~2 字节)更小。
如何在 Shakaplayer 中预加载 Widevine 服务证书: https://github.com/shaka-project/shaka-player/blob/6513ac056e5fd3ee9aecbb234c724119b058ef8d/docs/tutorials/widevine-service-certs.md
评论