你需要知道的 FFmpeg M3U8 命令
7 min read
快速命令参考
基本转换:
ffmpeg -i "stream.m3u8" -c copy output.mp4
MP4 的 AAC 修复:
ffmpeg -i "stream.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
重编码 H.264:
ffmpeg -i "stream.m3u8" -c:v libx264 -crf 23 -c:a aac output.mp4
选择画质:
ffmpeg -i "master.m3u8" -map 0:v:0 -map 0:a:0 -c copy output.mp4
仅音频:
ffmpeg -i "stream.m3u8" -vn -c:a mp3 audio.mp3
分析流信息
# 显示流与变体 ffmpeg -i "https://example.com/master.m3u8" # 检查加密标签 curl -s "https://example.com/stream.m3u8" | grep "#EXT-X-KEY"
直播录制
# 固定时长(30 分钟) ffmpeg -i "live.m3u8" -t 1800 -c copy recording.mp4 # 直到 Ctrl+C ffmpeg -i "live.m3u8" -c copy recording.mp4
片段操作
# 本地 TS 的 concat demuxer ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4 # 从流截取时间范围 ffmpeg -i "stream.m3u8" -ss 120 -t 60 -c copy clip.mp4
合并细节:用 FFmpeg 合并 TS。
请求头速查
ffmpeg -user_agent "Mozilla/5.0" -headers "Referer: https://example.com" -i "URL" -c copy out.mp4
安装并自检 FFmpeg
安装较新的静态构建或包管理器版 FFmpeg(ffmpeg -version)。若拉远程播放列表,确认构建含 HTTPS 与协议支持。公司笔记本上确认二进制已批准——随机「FFmpeg GUI」安装包是常见恶意软件载体。
先用短的公开 HLS demo 自检再碰生产 URL。若本地文件能播但远程 HTTPS 失败,查 TLS/代理拦截,而不是「HLS 坏了」。
覆盖 90% 任务的核心命令
# 编码已适合 MP4 时重封装 / copy
ffmpeg -i "https://example.com/master.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
# 明确 media 播放列表(避免 master 混淆)
ffmpeg -i "https://example.com/720p.m3u8" -c copy out.mp4
# 仅在需要时重编码
ffmpeg -i "input.m3u8" -c:v libx264 -c:a aac -movflags +faststart out.mp4
优先 -c copy 求速度与画质。源站需要时加 headers(-headers "Referer: …
")。直播加 -t 时长以便结束。
浏览器工具 vs FFmpeg
| 需求 | 浏览器转换器 | FFmpeg |
|---|---|---|
| 一次性授权 VOD | 快 | 可选 |
| 批量 / CI | 差 | 最佳 |
| 自定义头 / Cookie | 有限 | 灵活 |
| 不能安装软件 | 胜 | 被挡 |
| 超长数小时任务 | 内存风险 | 稳定 |
可能时从 在线转换器 开始;自动化再上 FFmpeg。另见 较短 FFmpeg 指南 与 用 FFmpeg 下载。
总结
FFmpeg 仍是完整的 M3U8→MP4 工具箱:先重封装,被迫再重编码,重复的事脚本化,并尊重 DRM/权利边界。搭配浏览器预检播放器,避免自动化一条死链。
常见问题解答
最常用的 FFmpeg M3U8 命令是什么?ffmpeg -i url -c copy -bsf:a aac_adtstoasc out.mp4
怎么只要音频?
加 -vn 并选择音频编码。
怎么录一小时直播?-t 3600
更完整的转换指南在哪?
完整 FFmpeg M3U8 转 MP4 指南。