Android 设备上的 HLS 加密

Posted

技术标签:

【中文标题】Android 设备上的 HLS 加密【英文标题】:HLS encryption on Android devices 【发布时间】:2013-07-02 12:58:54 【问题描述】:

我尝试使用 AES-128 加密 HLS 流。但是当我尝试发送这个加密 hls 流时 到 android 设备,但流无法播放,但在 ios 和 Smarttv 上我的流工作正常。当我调试 Android 设备时,我发现 Android 检查 AES 密钥是 17 个八位字节,而规范告诉我们 aes 密钥必须是 16 个八位字节。我最后添加了 1 个八位字节,例如 0x00000000,但解密后它说这个文件不是 MPEG-TS。

我该怎么办? 也许有人对android hls加密流有所了解。

【问题讨论】:

你能显示包含Key和IV的播放列表吗?密钥的大小不会不同,您可能只是误解了调试(可能是一个带有 nul 字节或类似内容的字符串。) #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:METHOD=AES-128,URI="192.168.1.132/key.txt" #EXTINF :10, mystream1.ts #EXTINF:10, mystream2.ts #EXTINF:10, mystream3.ts #EXTINF:10, mystream4.ts #EXTINF:10, mystream5.ts #EXT-X-ENDLIST @vigosslive 你解决了这个问题吗?你能分享你的解决方案吗?我遇到了同样的问题 【参考方案1】:

如果媒体文件碰巧使用 IIS 转换管理器进行了分段,您可以尝试用零填充 IV 字段以使其长度为 32 个字符(128 位)。

我可以让 hls 视频在具有较短 IV 字段的 IOS 上播放,但如果没有填充,视频将无法在 Android 上播放(使用 MediaPlayer)。

【讨论】:

以上是关于Android 设备上的 HLS 加密的主要内容,如果未能解决你的问题,请参考以下文章

在 android 上的 hls 流上选择质量视频

Android 3.0 上的 HLS(http 直播)和寻求

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

Android : 添加apk私有权限

Android VideoView 直播电视流 (HLS)

在哪里存储我的密钥以加密移动设备上的数据?