photo_2020-07-21_01-56-10.jpg

via 春潮频道

I. M3U8文件介绍

video-transcoding-fig1-ffmpeg-transcoding-high-level-flowchart-752409.png

M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。

实际上 m3u8 文件(大小几百Kb-几兆不等)是一个包含UTF-8编码文字的m3u播放列表,m3u文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。这种格式被用来作为HTTP Live 媒体流索引文件的格式(HLS)。

HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

因此,客户端获取 HLS 流文件,主要就是对 m3u8 文件进行解析操作。

via 维基百科m3u8 文件格式详解

II. M3U8-Downloader(Mac/Windows/Linux)

解析并下载 m3u8 对应 HLS 流文件内容(.ts文件),最后合成转码为.mp4。

支持Windows/Linux/Mac
M3U8-Downloader https://github.com/HeiSir2014/M3U8-Downloader
应用下载发布页https://github.com/HeiSir2014/M3U8-Downloader/releases

M3U8-Downloader是基于Electron框架开发的一款可以下载、播放HLS视频流的APP(带图形操作界面),功能特点如下:
功能 支持
HLS协议点播源
自定义Http协议头下载
自定义KEY和IV解密
本地M3U8文件下载
HLS协议直播源
标准 AES-128-CBC加密
标准 AES-196-CBC加密
标准 AES-256-CBC加密
非标准 AES-*-CBC加密 ㄨ(可定制)

HLSDownloadShow-3-1.gif

III. 如何设置附加头

HLSDownloadShow.png

附加头可选:(部分M3U8文件需带User-agent才可进行下载)

Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36

IV. 如何设置HTTP代理

HTTP代理设置可选:(有些海外资源需要进行代理加速,配置好后可以说相当快)

HTTP代理设置-M3U8下载.png

http://127.0.0.1:7890

不清楚应该填哪个端口?参考此文 为终端配置Http代理(端口号设置)

M3U8-Downloaderhttps://github.com/topics/m3u8-downloader (更多项目)

V. M3U8-Downloader(Android)

Lj 视频下载器 (m3u8, mp4, mpd):Google Play
更多M3U8应用:Google Play

手机没有 Google Play? 那就在网页下载谷歌商店的应用;

VI. 如何找到M3U8文件下载URL

参考此文,如何找到M3U8文件下载URL章节

最后修改:2021 年 02 月 27 日 08 : 08 AM