Chromecast 不再读取 AES-128 加密的 HLS 流?

Posted

技术标签:

【中文标题】Chromecast 不再读取 AES-128 加密的 HLS 流?【英文标题】:Chromecast doen't read AES-128 encrypted HLS streams anymore? 【发布时间】:2014-11-12 15:04:56 【问题描述】:

问题:

自从最新的 Chromecast 固件更新 (22062) 后,我无法再投射内容了。 我猜它来自更新,因为它在上周仍然有效。

我的流是 AES-128 加密的,我使用的是 HLS 协议。 我相信服务器上的 CORS 配置是正确的,因为我可以使用来自同一服务器的非加密流并且它运行良好。

日志:

这些是我在控制台中获得的日志:

[goog.net.WebSocket] WebSocket opened on ws://localhost:8008/v2/ipc cast_receiver.js:18
[cast.player.api.Player] Version: 1.0.0.2 
[cast.player.api.Player] load 
[cast.player.api.Player] play
[goog.net.XhrIo] Opening Xhr [GET [url].smil/playlist.m3u8 -1]
[goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET [url].smil/playlist.m3u8 -1]
[goog.net.XhrIo] Sending request [GET [url].smil/playlist.m3u8 -1]
[goog.net.XhrIo] Request complete [GET [url].smil/playlist.m3u8 200]
[cast.player.core.QualityManager] 0: from undefined to 1500000
[cast.player.hls.Playlist] update: [url].smil/chunklist_w693241366_b1500000.m3u8
[goog.net.XhrIo] Opening Xhr [GET [url].smil/chunklist_w693241366_b1500000.m3u8 -1]
[goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET [url].smil/chunklist_w693241366_b1500000.m3u8 -1]
[goog.net.XhrIo] Sending request [GET [url].smil/chunklist_w693241366_b1500000.m3u8 -1]
[goog.net.XhrIo] Request complete [GET [url].smil/chunklist_w693241366_b1500000.m3u8 200]
[cast.player.core.SourceBufferManager] 0: abort
[cast.player.core.SegmentManager] 0: seek 0
[goog.net.XhrIo] Opening Xhr [GET [URL]:80/auth-key/[token]?wowzasessionid=693241366 -1]
[goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET [URL]:80/auth-key/[token]?wowzasessionid=693241366 -1]
[goog.net.XhrIo] Sending request [GET [URL]:80/auth-key/[token]?wowzasessionid=693241366 -1]
[goog.net.XhrIo] Opening Xhr [GET [url].smil/media_w693241366_b1500000_0.ts -1]
[goog.net.XhrIo] Will abort after 60000ms if incomplete, xhr2 false [GET [url].smil/media_w693241366_b1500000_0.ts -1]
[goog.net.XhrIo] Sending request [GET [url].smil/media_w693241366_b1500000_0.ts -1]
[cast.player.api.Player] auto pause 0
[goog.net.XhrIo] Request complete [GET [URL]:80/auth-key/[token]?wowzasessionid=693241366 200]
Host Fatal Error - 2 
Request Status - undefined
[cast.player.api.Player] unload 

问题:

你体验过Host Fatal Error - 2吗? 根据Google documentation,这与加密有关:

静态 cast.player.api.ErrorCode.MEDIAKEYS 获取密钥或解密内容时出错。

我实际上不知道问题是什么,一周前一切正常。而且关于错误的文档很模糊。 我可以做些什么来获得有关此问题的更多信息吗?

非常感谢

【问题讨论】:

【参考方案1】:

如果还没有,您的接收器可能需要托管在 https 上。您可以从问题here获取更多详细信息。

【讨论】:

以上是关于Chromecast 不再读取 AES-128 加密的 HLS 流?的主要内容,如果未能解决你的问题,请参考以下文章

python Crypto AES-256-ECB 与PHP之间完成加解密

PHP的aes加解密算法

AES加解密 对称加密

js中怎么使用AES-128-CBC加密

低功耗蓝牙BLE之AES-128加密算法

升级后的 Chromecast - 设备不再可检测