美文网首页
M3U8 格式视频解密

M3U8 格式视频解密

作者: 微笑_d797 | 来源:发表于2021-03-13 12:44 被阅读0次

    由于我项目中最近用到了关于m3u8视频解析和在本地播放的需求,碰到了需要解密ts片段的场景,固记录下来

    分析M3U8文件

    当拿到一个m3u8格式的地址时,首先将m3u8格式的文件用\n隔开,并遍历,并检测有没有以EXT-X-KEY:开头或者包含的片段,这个片段就是m3u8格式的加密信息一般命名为:

    #EXT-X-KEY:METHOD=AES-128,URI="xx.key",IV=xxx

    这里只分析解密方法为aes-128解密的逻辑:

    aes128解密需要两个参数一个是key,一个是偏移量(iv)

    首先URI开头指向的通常是一个链接这个链接如果以http开头那么直接请求就可以,如果不是那大多数情况下都是以请求m3u8文件的地址去掉最后一个/前面的地址拼接起来的,当我们请求到的地址就是解密所需要的key

    大多数情况如果ts片段不是以http开头也可以通过这种方式拿到真实的地址

    一般EXT-X-KEY里面会包含iv参数,iv参数是一个32位的字符串,如果包含直接拿到iv参数就可以,如果不包含则是以ts地址所在m3u8文件中的序列号作为iv参数,比如第一个ts片段,那么他的iv值就是
    000...0001 (31个0和1),这样拿到了偏移量(iv)

    当我们拿到ts片段后直接用aes和刚刚拿到的key和偏移量去解密得到的片段就是新的ts片段

    播放该视频文件

    此时看到文件夹里的ts片段全部是可以播放的了,然后我们在把m3u8文件的ts片段地址指向对应的解密后的ts片段,即可实现本地播放m3u8视频

    因为已经是解密后的视频了所以需要把m3u8文件的#EXT-X-KEY部分去掉否则还是会不能播。

    相关文章

      网友评论

          本文标题:M3U8 格式视频解密

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