如何在AVPlayer中播放AES-128加密的HLS视频

7

我能够在AV Player中正常播放普通的HLS视频,但是如何播放AES-128加密的HLS视频呢?


1
你只需要将访问密钥添加到播放请求的头部,不是吗? - Sean Lintern
1
@Shob-Z,你能详细说明一下如何实现这个吗? - nhenrique
1
我也想了解这个信息。 - Jonny
@nhenrique,我已经添加了答案。 - Shob-Z
1
@Jonny 看看答案 - Shob-Z
显示剩余5条评论
1个回答

8

要解密AES-128或类似加密的HLS视频,只需在您的标头中添加“Authorization”即可。

let headers = ["Authorization": "Bearer xxxxxxxxxxxxxxxx..."]
let avAsset = AVURLAsset(url: videoURL, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
let avItem = AVPlayerItem(asset: avAsset)
let avPlayer = AVPlayer(playerItem: avItem)
.
.
.

感谢 @SeanLintern88 在这方面给予我的帮助。


2
非常感谢!由于某种原因,似乎这已经在工作了,AVPlayer应该能够直接解密AES-128加密的流(密钥在播放列表中指定)。我们遇到的问题是忘记在播放列表中的IV字符串前添加0x。除非我完全错了。 - Jonny
非常感谢。AVPlayer确实可以直接播放加密内容,无需头文件。为了在HTTPS之上增加另一层安全性,您应该使用cookies。当用户检索m3u8文件时设置一个cookie,AVPlayer将自动在file.key请求中使用该cookie。 - nhenrique
我有一个加密的视频链接,想要解密并播放,尝试了很多方法但都不行... - MHSaffari
这个可以运行。但有时视频会卡住。 - arango_86

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接