Apple的HTTP实时流使用openssl aes-128加密的问题

问题描述 投票:0回答:4

我们将openssl aes-128 encryption用于Apple的HLS video streaming上的流媒体。

下面是用于aes-128 encryption的命令

openssl aes-128-cbc -salt -k <HEXKey> -iv <HEXIV> -in <INFILE> -out <OUTFILE>

以及下面我的Playlist / Index文件用于hls流式传输。

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-VERSION:2
#EXT-X-KEY:METHOD=AES-128,URI="http://xxx.xxxx.xxx/key.txt",IV=0x00000000000000000000000000000000
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://xxx.xxxx.xxx/encry.ts
#EXT-X-ENDLIST  

其中,key.txt包含格式为0x00000000000000000000000000000000的十六进制键。

但是这不起作用,并且无法在IOS设备上播放媒体。提供错误,因为This movie could not be played

我不确定,这是什么问题。是encryption method还是playlist file

请帮助我。我会感激的。

预先感谢

编辑:

我觉得,如果有什么问题,下面提供的一些信息可能会有所帮助。

下面是我用来创建十六进制keyIV的命令>

openssl enc -aes-128-cbc -k String@MyKey -P -md sha1

如果有任何问题,请帮助我。

现在我的播放列表文件可以用Media Stream Validator很好地解析,但是在验证媒体时会出现以下错误。

unable to parse segment due to encryption

请帮助任何人。

我们正在使用openssl aes-128加密在Apple的HLS视频流上使用流媒体。以下是用于aes-128加密的命令openssl aes-128-cbc -salt -k -iv&...

ios encryption openssl aes http-live-streaming
4个回答
2
投票

您的问题实际上与文件'key.txt'有关。 HLS规范说,#EXT-X-KEY标记内的URI属性必须指向一个文件,该文件具有二进制格式的16个八位字节的数组,而不是您提供的十六进制字符串。


2
投票

嗯,实际的问题是key.txt文件,我在几个小时之前就找到了。我的key.txt不应包含hexkey,而应包含16bytes键。


0
投票

您的EXT-X-KEY语法错误:


0
投票

我有同样的问题,但仅在IOS设备上使用(浏览器,例如chromecast,firefox ...都可以)这是我的播放列表

© www.soinside.com 2019 - 2024. All rights reserved.