java下载m3u8视频,解密并合并ts(一)

3 篇文章 1 订阅
2 篇文章 2 订阅

下一篇 java下载m3u8视频,解密并合并ts(二)——获取m3u8链接

问题

由于在观看电影时,发现视频缓冲太慢,特别是一些人气不是很高的网站,每跳一次视频进度都需要加载几十秒还不一定成功。所以,我打算写一个java程序,来下载这些视频。

分析

视频播放地址必须时m3u8链接。当播放视频的时候,如果你打开了浏览器的开发者工具的话,就会发现有许许多多的ts片段。这些ts片段也就是加载的视频片段。我们要做的就是下载这些ts片段,然后合并。

当你打开m3u8链接的时候,会发现m3u8实际上是一个可以用文本打开的一个文件,它包含了一些和视频相关的标签。通过这些标签,我们可以获取我们要下载的ts片段。

现在大部分网站都对ts片段进行加密,所以我们首先要从m3u8文件拿到ts密钥。然后再进行下载。当然有的ts片段是没有被加密的。

每一个解密后ts片段都是可以单独播放的,所以合并的时候我们就直接流合并就行了,无需做任何处理。合并的文件我们就用mp4.

优点

  1. 可以识别m3u8获取的ts片段是否需要解密
  2. 可以自定义下载线程数,达到多线程快速下载
  3. 可以自定义ts片段下载失败重试次数,很难下载失败

缺点

  1. 当重试次数耗尽时或者部分片段解密失败时,不能够再次重新下载失败的ts片段。但是不影响视频后期合并,导致观看合并完成的视频的时候,播放不衔接;
  2. 线程越多,占用内存越高。当线程数为100时,下载400M视频需要700M内存,而10个线程则需要70M左右内存。当然线程越多,下载越快。这个问题可以自己看代码优化。不是不可以解决的。

准备

  1. JDK:1.8

  2. 开发环境:IntelliJ IDEA

  3. 用于解密的jar包:bcprov-jdk16-139.jar
    传送门:点击下载

  4. 了解一些m3u8标签作用
    https://www.cnblogs.com/shakin/p/3870442.html

git地址:https://github.com/qq494257084/m3u8Download

下一篇 java下载m3u8视频,解密并合并ts(二)——获取m3u8链接

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值