01 引言
HLS全称Http Live Streaming
,是由Apple
公司定义的用于实时流传输的协议,HLS
基于HTTP
协议实现,传输内容包括两部分:
- m3u8描述文件
- ts媒体文件
02 流程分析
HLS通过将整条流切割成多个小的可以通过HTTP
下载的媒体文件,然后客户端通过顺序拉取这些媒体文件播放,来实现看上去是播放一整条流的效果。
浏览器播放视频时,F12
控制台查看,可以看到视频被分为一段一段的ts
媒体文件下载:
而这些分段视频下载,都是由一个后缀为".m3u8
"的描述文件来控制下载顺序:
03 实践
支持 m3u8
的视频下载工具,比如: ffmpeg 或者 youtube-dl。本文使用 youtube-dl。
首先,终端安装youtube-dl
:
brew install youtube-dl
接着就可以执行下载命令了:
youtube-dl -f best -o /文件本地存放目录/视频名称.mp4 "m3u8 文件地址"
如果提示(表示这个错误信息表明您的系统中没有安装 ffmpeg
或 avconv
):
m3u8 download detected but ffmpeg or avconv could not be found. Please install one.
安装ffmpeg
:
brew install ffmpeg
ok,这样就可以download full video啦,细节不再详述了,已经讲的很白了😄