用手机app缓存的视频是多个bin文件请问怎么合并成完整的视频
发布网友
发布时间:2023-04-28 20:35
我来回答
共2个回答
热心网友
时间:2023-10-30 04:00
首先,这一堆.bin文件是没法直接打开的,bin文件可以属于任何类型,多见于镜像引导文件,也是属于分割缓存视频的引导链,
此问题显然是后者,视频被很多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播放器即可!!!
热心网友
时间:2023-10-30 04:00
建议在app播放视频时录屏。
谁告诉你bin是缓存文件,这个文件格式不是的。追问电影。很长的。我点的下载结果就是好多个bin文件,有的几百M有的1G多
热心网友
时间:2023-10-30 04:00
首先,这一堆.bin文件是没法直接打开的,bin文件可以属于任何类型,多见于镜像引导文件,也是属于分割缓存视频的引导链,
此问题显然是后者,视频被很多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播放器即可!!!
热心网友
时间:2023-10-30 04:00
建议在app播放视频时录屏。
谁告诉你bin是缓存文件,这个文件格式不是的。追问电影。很长的。我点的下载结果就是好多个bin文件,有的几百M有的1G多