使用 FFmpeg 将 HLS 转换为 MP4
6 min read
标准命令
ffmpeg -i "https://example.com/stream.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
这是最常见的 HLS→MP4 重封装:编码已适合 MP4 时又快又无损。概念指南:HLS 转 MP4。
当流复制失败时
ffmpeg -i "https://example.com/stream.m3u8" -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k -pix_fmt yuv420p output.mp4
编码不兼容或需要最大设备兼容时,用重新编码。
硬件加速
# NVIDIA ffmpeg -i "stream.m3u8" -c:v h264_nvenc -preset p7 -cq 23 -c:a aac output.mp4 # Intel Quick Sync ffmpeg -i "stream.m3u8" -c:v h264_qsv -global_quality 23 -c:a aac output.mp4 # Apple VideoToolbox ffmpeg -i "stream.m3u8" -c:v h264_videotoolbox -q:v 60 -c:a aac output.mp4
硬件路径重编码更快,但画质/设置因厂商而异。
重封装 vs 重新编码
优先重封装(-c copy)以兼顾速度与画质。仅在必要时重新编码。细节:高质量转换和完整 FFmpeg 指南。
不用终端的选项
我们的浏览器转换器通过 WebAssembly 运行 FFmpeg,免安装、不上传。
常见问题解答
哪条 FFmpeg 命令把 HLS 转成 MP4?ffmpeg -i url.m3u8 -c copy -bsf:a aac_adtstoasc out.mp4
无损吗?
使用 -c copy 时是。
何时重新编码?
编码不兼容或需要特定 profile 时。
能用 GPU 加速吗?
能——视硬件使用 NVENC、QSV 或 VideoToolbox。