美文网首页iOS开发
iOS AVPlayer播放加密m3u8

iOS AVPlayer播放加密m3u8

作者: 单抽律化娜 | 来源:发表于2018-09-03 19:10 被阅读775次

    先了解下m3u8,将m3u8文件下载在本地,以记事本打开是一串字符串,经过格式化后如下图所示:

    m3u8字符串格式化

    如果包含#EXT-X-KEY,说明这是加密的m3u8链接,通过相应的解密,就能播放视频。

    加密字段

    首先要分清楚2种情况

    1、本来就是加密链接(包含#EXT-X-KEY字段)

    2、人为加密后的加密链接(包含#EXT-X-KEY字段,但是后端又进行了加密)

    先来看看第一种情况,如果你将一个包含加密字段#EXT-X-KEY的正常m3u8链接放进AVPlayerItem里面初始化,AVPlayer也能播放出来,这说明什么?说明AVPlayer是会对包含#EXT-X-KEY字段的m3u8进行一次解密操作,这些操作是系统底层做的,我们是看不见的,如果你抓包一下就清楚了。


    先来研究下AVPlayer是如何播放m3u8链接的,流程大致如下:

    1、请求m3u8-->请求ts-->包含#EXT-X-KEY字段?-->包含或不包含  

    2、包含-->不真实ts-->请求URI-->获取key-->AES128解密ts-->请求真实ts

    3、不包含-->真实ts-->请求真实ts

    流程很简单,那么我们来看看第二种情况,按上面的底层逻辑处理流程大致如下:

    2、包含-->不真实ts(加密ts)-->请求URI(加密URI)-->获取key(加密key)-->AES128解密ts-->请求真实ts

    总的来说,我们口中说的加密链接,其实就是第二种情况,一条m3u8链接,本身就包含了加密字段,但是后端又对m3u8链接再次进行加密,只要其中一个环节被加密了,AVPlayer都不能播放视频。

    具体点的,可以看这里 https://www.jianshu.com/p/2c2cbe173e99  

    代码都贴出来了,直接复制黏贴就行了

    相关文章

      网友评论

        本文标题:iOS AVPlayer播放加密m3u8

        本文链接:https://www.haomeiwen.com/subject/wejbwftx.html