FFmpeg 下载 HLS 流媒体笔记

基本命令

ffmpeg -i "m3u8地址" -c copy output.mp4

参数说明

参数 说明
-i "URL" 输入源(m3u8 播放列表地址)
-c copy 直接复制流,不重新编码(速度快,无损质量)
output.mp4 输出文件名

工作原理

  1. m3u8 是 HLS (HTTP Live Streaming) 的播放列表文件
  2. 该文件包含多个 .ts 视频片段的下载地址
  3. ffmpeg 自动解析 m3u8,按顺序下载所有 .ts 片段
  4. 将所有片段合并成一个完整的视频文件

常用进阶选项

指定 User-Agent

某些网站会检测 User-Agent,需要伪装浏览器:

ffmpeg -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" -i "URL" -c copy output.mp4

添加 Referer 头

防盗链网站需要添加 Referer:

ffmpeg -headers "Referer: https://example.com" -i "URL" -c copy output.mp4

重新编码

如果 -c copy 失败或视频有问题,可以重新编码:

ffmpeg -i "URL" -c:v libx264 -c:a aac output.mp4

设置超时时间

下载不稳定时增加超时:

ffmpeg -timeout 10000000 -i "URL" -c copy output.mp4

实际示例

ffmpeg -i "https://example.com/video.m3u8?auth_key=xxx" -c copy video.mp4

注意事项

  • m3u8 链接通常带有时效性参数(如 auth_key),过期后无法下载
  • 部分加密的 HLS 流可能需要额外处理
  • 下载速度取决于网络和服务器限制
posted @ 2026-01-19 01:13  LexLuc  阅读(1)  评论(0)    收藏  举报