一、m3u8视频简介
m3u8是基于HLS(HTTP Live Streaming)协议的视频格式,由苹果公司开发。它将视频分成多个小片段(.ts文件),通过m3u8索引文件进行管理。这种方式可以实现自适应码率,让视频在不同网络环境下都能流畅播放。
二、准备工作
1. 安装FFmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows
# 访问 https://ffmpeg.org/download.html 下载并配置环境变量
2. 验证安装
ffmpeg -version
三、下载m3u8视频的方法
方法一:直接下载(推荐)
# 直接下载m3u8视频并转换为MP4
ffmpeg -i "https://example.com/video.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
方法二:下载加密的m3u8
# 如果m3u8有密钥加密,需要提供密钥
ffmpeg -i "https://example.com/encrypted.m3u8"
-encryption-key "your-key-here"
-c copy output.mp4
方法三:下载后合并
# 步骤1:下载所有ts片段
# 使用yt-dlp或其他工具下载ts片段
# 步骤2:合并ts文件
ffmpeg -i "concat:seg1.ts|seg2.ts|seg3.ts" -c copy output.mp4
方法四:使用FFmpeg下载并转换格式
# 下载并转换为不同格式
ffmpeg -i "https://example.com/video.m3u8"
-c:v libx264 -c:a aac
-strict experimental
output.mp4
# 转换为AVI
ffmpeg -i "https://example.com/video.m3u8" output.avi
# 转换为MOV
ffmpeg -i "https://example.com/video.m3u8" output.mov
四、常用参数说明
| 参数 | 说明 |
|---|---|
| -i | 输入文件URL |
| -c copy | 直接复制流,不重新编码 |
| -bsf:a | 音频位流过滤器 |
| -c:v | 视频编码器 |
| -c:a | 音频编码器 |
| -ss | 开始时间 |
| -t | 持续时间 |
五、下载m3u8的步骤详解
步骤1:获取m3u8链接
在视频网站按F12打开开发者工具,切换到Network(网络)标签,刷新页面,搜索".m3u8",找到视频的m3u8链接。
步骤2:下载视频
ffmpeg -i "你的m3u8链接" -c copy output.mp4
步骤3:处理常见问题
- 如果下载失败,尝试添加-user-agent参数
- 如果视频加密,需要获取密钥
- 如果需要指定referer,添加-referer参数
六、使用第三方工具(推荐)
1. yt-dlp(推荐)
# 安装yt-dlp
pip install yt-dlp
# 下载m3u8视频
yt-dlp "https://example.com/video.m3u8"
# 下载并转换为MP4
yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 "url"
2. ffmpeg-python
# 安装
pip install ffmpeg-python
# 使用Python下载
import ffmpeg
stream = ffmpeg.input('https://example.com/video.m3u8')
stream = ffmpeg.output(stream, 'output.mp4', c='copy')
ffmpeg.run(stream)
七、注意事项
- 确保有稳定的网络连接
- 部分m3u8视频有加密保护,需要相应密钥
- 下载视频请遵守版权法规
- 建议使用-c copy参数保持原始质量
八、总结
FFmpeg是下载m3u8视频的强大工具。通过简单的命令就可以将m3u8视频下载并转换为其他格式。掌握这些技巧,可以方便地保存和转换各种流媒体视频。