解密m3u8/ts视频流

有些通过浏览器插件捕获的视频流是无法播放的,原因是服务器对其进行了加密,本文用于记录自己第一次m3u8解密的过程

m3u8是一种流媒体格式,以文件列表的形式存在,里面记录了版本号、加密方式、文件列表等信息

从某个地址(https://abc.net/xx/xx/,m3u8下载地址是https://abc.net/xx/xx/index.m3u8)捕获的index.m3u8文件内容如下

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000,RESOLUTION=720x480
1000kb/hls/index.m3u8

这是一个嵌套的m3u8,对我们有帮助的m3u8可以通过地址https://abc.net/xx/xx/1000kb/hls/index.m3u8下载

这个index.m3u8的内容如下

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key.key"
#EXTINF:1.668333,
6qYsze1019000.ts
#EXTINF:0.834167,
6qYsze1019001.ts
#EXTINF:0.834167,
6qYsze1019002.ts
……
下面还有很多
……

如果没有#EXT-X-KEY这一行,就是没有加密,METHOD表明了加密方式,URI是密匙文件的地址,有的网站会直接写出详细地址,有些则不会,甚至有些会对uri地址进行加密,对uri地址解密的方法百度上有很多

密匙文件一般为16字节,在浏览器中输入URI可能不会直接下载密匙,而是在浏览器中显示密匙

我的密匙文件内容是

5fa1f545ebbba8bd

这里没有给出详细地址,一般来说就是默认为相对路径,因此实际URI为https://abc.net/xx/xx/1000kb/hls/key.key

6qYsze1019xxx.ts是视频流文件的获取地址,实际地址是https://abc.net/xx/xx/1000kb/hls/6qYsze1019xxx.ts

可以通过猫抓这些浏览器视频捕获插件获得这些URI地址,将视频定位到末尾,猫抓的信息更新后会显示最后一个视频流的文件(就是6qYsze1019xxx.ts这些文件里面xxx数字最大的那个),然后可以通过迅雷等软件下载这些视频流

 

下载后的视频流如果被加密了,是无法直接播放的。通过上面获取的index.m3u8(获取地址是https://abc.net/xx/xx/1000kb/hls/index.m3u8,不是https://abc.net/xx/xx/index.m3u8,下同)和key.key的配合,可以通过使用ffmpeg等软件进行解密并且合并,使用格式工厂也可以合并,但是每次输入文件最大是50个,不方便,有了index.m3u8和视频流,使用ffmpeg可以直接使用一行命令来合并所有视频流文件

 

解密过程:

1、下载index.m3u8、key.key、视频流

2、首先安装ffmpeg,并且设置好环境变量

3、将index.m3u8、key.key放入视频流所在的目录,将key.key改名为key.m3u8(因为key不是ffmpeg内置格式,使用key.key会报错)

4、在命令行中,进入视频流所在目录,输入以下命令即可完成解密以及合并的工作,最后会在当前目录下生成完整的输出视频out.mp4

ffmpeg -i index.m3u8 out.mp4

 

当然了,最简单的办法当然是直接从网上获取视频,免去下载视频流的步骤,命令如下

-i后面指定m3u8文件的URI

out.mp4是生成文件名,默认是命令行的当前目录,可以通过绝对路径指定具体位置,如G:\abc\xxx.mp4

ffmpeg -i https://abc.net/xx/xx/1000kb/hls/index.m3u8 out.mp4

 

 

  • 14
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值