用 FFmpeg 下载 HLS 流:分步指南
7 min read
分步下载 HLS
- 安装 FFmpeg——来自 ffmpeg.org 或包管理器。
- 拿到 M3U8 URL——通常以
.m3u8结尾。 - 打开终端——CMD、PowerShell、Terminal 或 shell。
- 运行:
ffmpeg -i "https://example.com/stream.m3u8" -c copy output.mp4
- 等待进度——时间、速度和大小更新直至完成。
加密流(AES-128)
若播放列表含 #EXT-X-KEY 且密钥公开,FFmpeg 下载时通常会自动解密。否则请确保密钥 URI 可达(网络/鉴权)。DRM 保护流无法用通用工具解密。相关:完整 FFmpeg 转换指南。
直播 vs 点播
点播列表以 #EXT-X-ENDLIST 结束并会下载到完成。直播列表永不结束——用 -t 限时长或 Ctrl+C 停止。指南:用 FFmpeg 下载 M3U8。
自动化多个下载
#!/bin/bash
urls=(
"https://example.com/stream1.m3u8"
"https://example.com/stream2.m3u8"
)
i=1
for url in "${urls[@]}"; do
ffmpeg -i "$url" -c copy "out-$i.mp4"
i=$((i+1))
done或用 yt-dlp 读 URL 列表。批量思路:批量下载 M3U8。
何时 FFmpeg 过重
一次性下载又不想用终端时,用我们免费的浏览器下载器——多线程拉取与合并,免安装。
常见问题解答
怎么用 FFmpeg 下载 HLS?ffmpeg -i "url.m3u8" -c copy out.mp4
Windows 能用吗?
能——安装 FFmpeg 后在 PowerShell 或 CMD 运行相同命令。
能下载加密 HLS 吗?
密钥可达时 AES-128 可以;DRM 不行。
怎么停止直播录制?
Ctrl+C,或事先设置 -t 秒数。