Chromecast Shaka 播放器重复许可证

Chromecast Shaka player duplicate licences

提问人:krt 提问时间:1/18/2023 更新时间:7/3/2023 访问量:143

问:

我们的许可证服务器启用了 JWT JTI 密钥进行反重放,在我们的 chomecast 上,我们看到设备请求许可证两次以上(如果是两次,我可以看看也许第一个请求是服务器证书 - 但对于 chromecast 来说,这似乎不是一回事),这会触发 JTI 反重放。我看到当前版本的强制转换固件使用 shaka 3.2.0,并且针对 3.0.2 的 Widevine(或类似)修复了此问题。

想知道是否有人在玩家不止一次请求许可证的 chromecast 上解决了类似的问题?

谢谢

预计 chromecast 播放器会请求一次许可证。

重复 Chromecast 许可 Widevine Shaka

评论


答:

0赞 Sflagg 4/7/2023 #1

如果要阻止 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

0赞 Per Quested Aronsson 7/3/2023 #2

除非许可证缓存(持久化)在应用程序中,否则 Widevine 会为每个资产发出两个单独的请求:

  1. 服务证书申请
  2. 许可证申请

在第一次检查时,它们看起来非常相似,并且可能会使您认为它们是重复的,但如果您查看有效负载,则与许可证请求相比,服务证书请求的大小(~2 字节)更小。

如何在 Shakaplayer 中预加载 Widevine 服务证书: https://github.com/shaka-project/shaka-player/blob/6513ac056e5fd3ee9aecbb234c724119b058ef8d/docs/tutorials/widevine-service-certs.md