0%

m3u8视频下载方法

m3u8格式

M3U是一种播放多媒体列表的文件格式,它的设计初衷是为了播放音频文件,比如MP3,但是越来越多的软件现在用来播放视频文件列表,M3U也可以指定在线流媒体音频源。很多播放器和软件都支持M3U文件格式。

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

HTTP Live Streaming(缩写是HLS)是由苹果公司提出基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

综上,m3u8是一种文件格式。下载m3u8格式的文件时,会下载一个m3u8文件(文件列表),以及一个包含了很多ts文件(视频片段)的隐藏文件夹。

更多内容参考M3UHTTP Live Streaming

怎样下载m3u8格式视频?

获取下载地址

1、安装chrome插件,Stream Video Downloader

2、打开一个包含m3u8视频的页面,比如云原生技术的前世今生。点击播放,Stream Video Downloader就可以嗅探到m3u8文件。

3、复制下载地址并保存,此处的下载地址为:
https://myun-hw-s3.myun.tv/melj80jz/5a3ydjj0/1551265736611296603.m3u8

FFmpeg

FFmpeg是一个m3u8格式下载工具,并且可以把m3u8格式视频合并成mp4格式。

1、访问github-FFmpeg或者FFmpeg官网,下载FFmpeg,本文中下载ffmpeg-4.2.2-win64-static.zip。

2、解压重命名文件夹为ffmpeg,进入ffmpeg/bin目录。

3、右键加+Shift,打开Powershell,输入下载合并命令:

1
.\ffmpeg.exe -i "https://myun-hw-s3.myun.tv/melj80jz/5a3ydjj0/1551265736611296603.m3u8" -c copy 01-云原生技术的前世今生.mp4

耐心等待,下载完成即可在ffmpeg/bin目录中看到下载好的mp4视频文件。

m3u8转mp4

手机QQ浏览器的视频下载功能确实强大,大部分能看到的视频都可以下线,包括云原生技术的前世今生这个页面中的视频。

下载好的文件,是m3u8格式视频。正如上文所说,这个视频文件实际上是一个视频列表和一个隐藏文件夹组成。想要给它合并转换成mp4格式视频,怎么办?同样可以使用FFmpeg。

1、把视频列表和隐藏文件夹都拷贝到PC。

2、使用sublime打开m3u8文件,批量替换路径。
替换前为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#EXTM3U
#EXT-X-TARGETDURATION:11
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/0.ts
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/1.ts
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/2.ts
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/3.ts
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/4.ts
#EXTINF:10.000000,
file:///storage/emulated/0/QQBrowser/视频/.820a585fc4f1a85d4875007aff5ba7a5/5.ts

转换后为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#EXTM3U
#EXT-X-TARGETDURATION:11
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/0.ts
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/1.ts
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/2.ts
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/3.ts
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/4.ts
#EXTINF:10.000000,
.820a585fc4f1a85d4875007aff5ba7a5/5.ts

3、打开Powershell,执行转换命令:

1
2
3
4
# 直接合并转换(速度快)
.\ffmpeg.exe -i input-filename.m3u8 -c copy output-filename.mp4
# 合并转码压缩(速度慢)
.\ffmpeg.exe -i input-filename.m3u8 output-filename.mp4


执行完成,即可看到转换好的mp4文件。