← Blog.backToBlog

FFmpeg M3U8 参数速查 — copy、请求头与排错

7 min read

M3U8 输入选项

参数用途
-i url.m3u8输入播放列表 URL/文件
-protocol_whitelist允许 http/https/crypto 协议
-allowed_extensions ALL需要时允许 .m3u8 扩展名
-headers自定义 HTTP 头
-user_agent自定义 User-Agent

不用命令行?用免费M3U8 转 MP4播放器;下文参数面向自动化。

输出选项

参数用途
-c copy流复制(快、无损)
-c:v libx264视频重编码 H.264
-c:a aac音频重编码 AAC
-crf N画质(越低越好;约 18–28)
-preset编码速度 vs 压缩
-t N时长限制(直播捕获)
-ss N起始偏移
-bsf:a aac_adtstoascMP4 的 AAC 修复

流选择

  • -map 0:v:0——第一/最高视频
  • -map 0:a:0——第一音轨
  • -vn——无视频
  • -an——无音频
  • -sn——无字幕

排查参数

  • -loglevel debug——详细日志
  • -stats——进度(默认)
  • -y——覆盖输出
  • -n——从不覆盖

示例配方

# 无损 MP4
ffmpeg -i "u.m3u8" -c copy -bsf:a aac_adtstoasc o.mp4
# 一小时直播
ffmpeg -i "live.m3u8" -t 3600 -c copy rec.mp4
# 带请求头
ffmpeg -user_agent "Mozilla/5.0" -i "u.m3u8" -c copy o.mp4

命令手册:HLS 命令参考

不用命令行?用免费M3U8 转 MP4播放器;下文参数面向自动化。

常见问题解答

哪个参数保持画质?
-c copy

哪个修复 MP4 里的 AAC?
-bsf:a aac_adtstoasc

怎么限制直播录制时长?
用秒为单位的 -t

怎么选更低画质?
改映射如 -map 0:v:1