方法一 使用ffmpeg下载
参考链接:
FFmpeg
https://ffmpeg.org/
ffmpeg -i http://xxxxx/test.m3u8 -c copy test.mp4
踩坑一:ffmpeg默认不支持https连接,需要自己重新编译,添加对https的支持
参考链接:
使用ffmpeg下载m3u8视频(ubuntu18) - 知乎
https://zhuanlan.zhihu.com/p/108475858
ffmpeg开启https,提示“ERROR:opensslnotfound”_along-CSDN博客
https://blog.csdn.net/u201011221/article/details/96633912
在Ubuntu Server上编译FFmpeg - 廖雪峰的官方网站
https://www.liaoxuefeng.com/article/1068527285250720
踩坑二:ffmpeg下载文件的时候遇到服务器500错误就会丢帧,文件下载不完全
参考链接:
ffmpeg: drop 丢弃帧问题,与-c copy 下载问题 - V2EX
https://www.v2ex.com/t/649899
总结:
不推荐这种方法
ffmpeg本质不是一个下载工具,而是一个视频处理工具
方法二 先将ts文件批量下载下来,再将ts文件合并成一个视频文件
批量下载ts文件
- wget
wget -c -b -nc -i test.m3u8
参考链接:
每天一个linux命令(61):wget命令 - peida - 博客园
https://www.cnblogs.com/peida/archive/2013/03/18/2965369.html
linux wget命令从Web网站下载文件-Linux实验室
https://idc.wanyunshuju.com/cym/139w.html
-
aria2c
-
迅雷
-
idm
合并ts文件
ffmpeg
使用ffmpeg 合并ts文件时需提供.m3u8文件
对于部分加密过的ts文件,无法直接打开的情况下
需要下载对应的key文件,与m3u8文件
ffmpeg -i text.m3u8 -c copy -movflags faststart test.mp4
查看视频文件的元信息,比如编码格式和比特率,可以只使用-i参数。
ffmpeg -i input.mp4
参考链接:
合并多个.ts视频文件 | 幽幽过客
http://www.uuc.me/1198.html
FFmpeg 视频处理入门教程 - 阮一峰的网络日志
http://www.ruanyifeng.com/blog/2020/01/ffmpeg.html
使用copy命令
方法三 自动化工具下载
GitHub - nilaoda/N_m3u8DL-CLI: [.NET] m3u8 downloader 开源的命令行m3u8/HLS下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等.
https://github.com/nilaoda/N_m3u8DL-CLI
VLC (媒体播放器) - 知乎
https://www.zhihu.com/topic/19553503/hot
文末
下载m3u8文件方法有很多,
重要的不是方法,而是下载的网速有多快。
参考链接:
下载blob加密的视频以及m3u8下载姿势合集 - 知乎
https://zhuanlan.zhihu.com/p/65425801