← Blog.backToBlog

你需要知道的 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 指南