现状
看到网站上不错的视频,想要保存到本地,怎么办?
冲突
通过Chrome的Network
面板看不到任何视频格式的请求,反而有一个叫.m3u8
的文件,和后续一坨.ts
结尾的连续请求。
原理
视频网站为了提高视频加载速度,并且节省带宽资源,网站后台把视频做成小的视频切片,都是以.ts
结尾的文件,一般10秒一个,每个都几百kb很小。
这些文件的url保存到一个.m3u8
的文本文件里。
播放器通过加载.m3u8
文件,这些文件连接起来,输出到浏览器。
疑问
理论上把所有的.ts
文件全部合并到一起就可以生成一个完整的MP4文件
,应该怎么做呢,写脚本解析.m3u8
,文件再按顺序合并吗?
这么普罗大众的需求,应该不止刚出现吧,有没有工具可以使用?
答案是 肯定的
解决方案
废话少说,直接上代码。
ffmpeg -i "http://xxxx.com/file_name.m3u8" "save_video.mp4"
问题1.如何安装ffmpeg
- 通过
brew
安装
brew install ffmpeg
安装中可能会有错误提示,需要执行以下命令,安装xcode命令行工具。
xcode-select --install
安装成功后,再执行如下命令:
brew install ffmpeg
我安装的时候 提示我
xcode-select -- install
然后我就照提示操作,这个命令完成后 再brew install ffmpeg
安装完成。
- 按照示例使用ffmpeg
ffmpeg -i http://aisylive.oss/xxxxxxx/xxxx/180209c001_3.m3u8 output.mp4
至此 视频下载合并完成。