此问题显然是后者,视频被很多AES128加密的bin文件,属于缓存视频的一种,这种被分割的视频其实是被分成了很多在线内存引导链,属于M3U8格式视频。
M3U8格式视频解密由于我项⽬中最近⽤到了关于m3u8视频解析和在本地播放的需求,碰到了需要解密bin⽚段的场景,固记录下来分析M3U8⽂件当拿到⼀个m3u8格式的地址时,⾸先将m3u8格式的⽂件⽤\n隔开(或者将文件格式重命名改为txt格式用记事本打开)
遍历并检测有没有以EXT-X-KEY:开头或者包含的⽚段,这个⽚段就是m3u8格式的加密信息⼀般命名为:#EXT-X-KEY:METHOD=AES-128,URI="xx.key",IV=xxx这⾥只分析解密⽅法为aes-128解密的逻辑:aes128解密需要两个参数⼀个是key,⼀个是偏移量(iv)⾸先URI开头指向的通常是⼀个链接这个链接如果以http开头那么直接请求就可以,如果不是那⼤多数情况下都是以请求m3u8⽂件的地址去掉最后⼀个/前⾯的地址拼接起来的,当我们请求到的地址就是解密所需要的key⼤多数情况如果bin⽚段不是以http开头也可以通过这种⽅式拿到真实的地址⼀般EXT-X-KEY⾥⾯会包含iv参数,iv参数是⼀个32位的字符串,如果包含直接拿到iv参数就可以,如果不包含则是以bin地址所在m3u8⽂件中的序列号作为iv参数,⽐如第⼀个ts⽚段,那么他的iv值就是000...0001 (31个0和1),这样拿到了偏移量(iv)当我们拿到ts⽚段后直接⽤aes和刚刚拿到的key和偏移量去解密得到的⽚段就是新的bin⽚段播放该视频⽂件此时看到⽂件夹⾥的bin⽚段全部是可以播放的了,然后我们在把m3u8⽂件的ts⽚段地址指向对应的解密后的ts⽚段,即可实现本地播放m3u8视频因为已经是解密后的视频了所以需要把m3u8⽂件的#EXT-X-KEY部分去掉否则还是会不能播。
想在本地播放有两种方法,分为电脑和手机两种类型。
电脑的话可以下载安装 ffmpeg或者N_m3u8DL-CLI进行合并视频具体自行百度查询 *** 作,今天小伙伴们主要不会用手机 *** 作,下面我教大家!
手机的话可以在文件管理中找到该缓存文件,一般缓存的bin文件会打包在一个文件夹里,仔细观察不难发现其中不止有bin文件还有一个key文件和名为index.m3u8文件。
手机下载安卓版ffmpeg安装并打开
前面分析了m3u8文件内容和bin文件解密方法,我们在输入文件中找到index.m3u8文件,输出文件自定义,点击合并等待完成即可
也可以下载VLC Media Player播放器后,先在文件管理中找到index.m3u8文件按住后选择打开方式为vlc播放器即可!!!
第一:打包或压缩文件tar,zip,gz等,通常解压后便可,或者解压后运行sh文件;app
第二:对应的有管理工具的deb,rpm等,一般的这类安装文件能够经过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;工具
第三:像.bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等,当在命令行运行bin安装文件时,其实就是bin里面的sh来解压bin中的zip或安装rpm的过程;
.bin安装文件能够认为是sh文件和zip或rpm等其余安装文件的打包形式。以下图
.bin安装文件的优势:spa
1)只有一个包即.bin文件;.net
2)能够直接运行在Linux上,由于他是sh(他的前半部分是sh);命令行
3)在sh中能够包含须要用户接收的协议信息,并且提示用户接收,若是用户不接收,安装退出;
1)超级简单: sh xxxx.bin 或直接xxxx.bin。
2)过程以下:
上传.bin文件至目标服务器执行
./vdi.bin
参考:
http://www.javashuo.com/article/p-ssfkvckd-m.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)