使用FFmpeg下载m3u8格式视频

完整指南:如何下载和转换m3u8视频

一、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视频下载并转换为其他格式。掌握这些技巧,可以方便地保存和转换各种流媒体视频。