加密的直播流不在IOS5中播放,但在IOS4中播放

时间:2011-10-27 07:04:49

标签: ios streaming ios5 http-live-streaming

基本上下面显示的分段视频文件播放列表在IOS4中播放但在IOS5中没有播放,所以我猜在编码,分段或加密方面没有错误。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-KEY:METHOD=AES-128,URI="http://xxx.xx.x.xx/ios/keys/key.txt",IV=0x00000000000000000000000000000000
#EXTINF:10,
http://xxx.xx.x.xx/ios/myvideo/stream-1.ts
#EXTINF:10,
http://xxx.xx.x.xx/ios/myvideo/stream-2.ts

...

#EXTINF:10,
http://xxx.xx.x.xx/ios/myvideo/stream-502.ts
#EXTINF:10,
http://xxx.xx.x.xx/ios/myvideo/stream-503.ts
#EXT-X-ENDLIST

在safari中错误是'操作无法完成'。但如果文件未加密,则同一列表可以正常运行。

thread 似乎讨论了类似的问题,但该解决方案尚未公开。

我也遇到了这个 thread ,这表明它与#EXT-X-TARGETDURATION标签有关,但我无法理解它。

2 个答案:

答案 0 :(得分:0)

根据文档here,IV标记是可选的,this解释如果缺少IV,则解密时序列号不能用作IV。

问题IOS4和IOS5以不同的方式处理它们

所以这适用于IOS5,但在IOS4中引发了错误

#EXT-X-KEY:METHOD=AES-128,URI="http://xxx.xx.x.xx/ios/keys/key.txt"

虽然这适用于IOS4,但在IOS5中抛出错误

#EXT-X-KEY:METHOD=AES-128,URI="http://xxx.xx.x.xx/ios/keys/key.txt",IV=0x00000000000000000000000000000000

就我而言。

答案 1 :(得分:0)

对于iOS5上的HLS,TARGETDURATION值实际上不是目标持续时间,但需要是最大持续时间。所以它应该设置为文件中最大的段。