美文网首页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  

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

相关文章

  • AVPlayer 播放加密m3u8(swift版)

    抽了点时间,把AVPlayer播放加密m3u8链接的demo写了出来,直接复制黏贴 M3u8ResourceLoa...

  • iOS AVPlayer播放加密m3u8

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

  • iOS AVPlayer M3U8 加密播放

    这几天一直做M3U8的加密播放,刚开始在各种文章中学习,探索,但都失败了。下面就我个人的理解来说明下。 HLS(H...

  • iOS音频篇-AVPlayer

    iOS音频篇:使用AVPlayer播放网络音乐 iOS音频篇:AVPlayer的缓存实现

  • [iOS]调和 pop 手势导致 AVPlayer 播放卡顿

    [iOS]调和 pop 手势导致 AVPlayer 播放卡顿 [iOS]调和 pop 手势导致 AVPlayer ...

  • ios AVPlayer播放加密M3u8(oc版)

    应某些人需求,把oc版写了下,n年没碰oc了,如果有哪里写的有问题,希望在留言里指出来,我会修改的: swift版...

  • WMPlayer - 网络视频播放

    WMPlayer视频播放器,AVPlayer的封装,继承UIView,想怎么玩就怎么玩。支持播放mp4、m3u8、...

  • avplayer

    参考1.iOS通过AVPlayer打造自己的视频播放器2.基于 AVPlayer 自定义播放器3.AVPlayer...

  • iOS 音频

    iOS 音频播放 本地音频文件 AVPlayer / AVAudioPlayer 在线音频流 AVPlayer i...

  • IOS m3u8 AVPlayer(一)

    一个超级简单的AVPlayer播放m3u8的例子,也是之前看其他前辈写的,后续会有更详细的内容,现在只是播放.因为...

网友评论

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

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