FFmpeg M3U8 转 MP4 教程【2025 完整指南】
2025 年实战教程,手把手教你使用 FFmpeg 将 HLS 播放列表保存为 MP4。
目录
- FFmpeg 简介和安装
- 基础转换命令
- 高级选项(质量、速度、音频)
- 常见问题和解决方案
- 批量转换脚本
- 在线工具替代方案
简介
本教程将带你使用 FFmpeg 命令行工具,将 M3U8 或 HLS 播放列表转换为 MP4 文件。从环境安装、基础命令,到性能优化与故障排查,帮助你快速保存直播或点播流媒体内容。
前置条件
- 设备已安装 FFmpeg
- 可访问的 M3U8 播放列表链接或本地文件
- 具备基础命令行操作能力
安装 FFmpeg
Windows
- 从 ffmpeg.org 下载最新版本。
- 将压缩包解压到
C:\\ffmpeg。 - 把
C:\\ffmpeg\\bin添加到系统 PATH。
macOS
brew install ffmpegLinux(Ubuntu/Debian)
sudo apt install ffmpeg基础转换命令
流复制(最快捷)
ffmpeg -i "https://example.com/playlist.m3u8" -c copy output.mp4-c copy 选项会保留原始音视频编码,速度最快,前提是 MP4 容器能够兼容源流的编解码器。
重新编码(兼容性更好)
ffmpeg -i input.m3u8 -c:v libx264 -c:a aac output.mp4通过 H.264 视频和 AAC 音频重新编码,可在浏览器、智能电视和移动设备上获得最佳兼容性,但处理时间会比纯复制长。
高级选项
高质量输出
ffmpeg -i input.m3u8 -c:v libx264 -crf 18 -preset slow output.mp4调整 -crf 值可以控制画质(值越低质量越高)。搭配慢速 preset,可在关注文件体积时提高压缩效率。
快速转换并修正音频
ffmpeg -i input.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4使用 aac_adtstoasc 比特流过滤器,可将 ADTS 格式的 AAC 音频转换为 MP4 支持的结构,无需重新编码。
自定义分辨率
ffmpeg -i input.m3u8 -s 1920x1080 -c:v libx264 -c:a copy output.mp4借助 -s 参数将视频缩放到指定分辨率,同时保留原始音频流,适用于需要统一输出分辨率的场景。
常见问题与解决方案
CORS 跨域错误
为请求添加必要的 Header:
ffmpeg -headers "Referer: https://example.com" -i playlist.m3u8 -c copy output.mp4协议不受支持
ffmpeg -protocol_whitelist file,http,https,tcp,tls -i playlist.m3u8 -c copy output.mp4网络超时
ffmpeg -timeout 10000000 -i playlist.m3u8 -c copy output.mp4批量转换脚本
Bash 脚本
#!/bin/bash
for file in *.m3u8; do
ffmpeg -i "$file" -c copy "${file%.m3u8}.mp4"
doneWindows 批处理
for %%f in (*.m3u8) do ffmpeg -i "%%f" -c copy "%%~nf.mp4"在线工具替代方案
不想使用命令行?试试我们的 在线 M3U8 转 MP4 工具,支持浏览器内转换、批量处理与进度追踪,无需安装。
常见问答
问:转换失败怎么办? 检查网络连通性、添加协议白名单,或确认流媒体没有 DRM 保护。
问:如何保持画质? 若目标设备支持原始编码,优先使用 -c copy 避免重新编码。
问:可以录制直播流吗? 可以,搭配 -t 3600 可限制录制时长为一小时。
总结
FFmpeg 功能强大且灵活,可满足各种 M3U8 转 MP4 场景。若希望更快速、免安装的方案,欢迎使用我们的 在线转换工具,直接在浏览器中完成任务。