实用技巧

M3U8转MP4方法:FFmpeg、VLC与常见错误

将M3U8文件或地址保存为MP4,了解编码流复制、H.264/AAC重编码、VLC以及403和无声问题。

更新日期

M3U8是播放列表,MP4是可以容纳视频与音频的容器。

M3U8放不进剪辑软件,改名MP4也打不开?先确认它引用的视频片段能否读取。本文以你拥有或获准保存、具有结束点的HLS来源为例,说明如何生成可播放的文件。

先区分播放列表与实际视频片段

M3U8通常是记录HLS片段顺序和地址的文本,不是视频本体。它也可能指向不同清晰度或独立音频列表。把后缀改成.mp4不会生成视频数据。

URL及其引用资源都必须可读。本地列表还需要.ts、.m4s和初始化文件。使用相对路径时保留原文件夹结构。本文处理已结束的来源,不介绍录制正在进行的直播。

先用FFmpeg尝试不重编码保存

先在新终端执行ffmpeg -version。若找不到命令,检查FFmpeg安装及程序路径。 示例选择第一个视频和第一个音频,未必是最高画质或所需语言。视频没有音频时会生成无声MP4;纯音频列表需要别的命令。字幕及其余轨道不包含在内。

-c copy只是重新封装,不再编码,因此避免又一轮编码损失;它不能补回缺片,也不会把不兼容的编码变成MP4可用。仅填写有权访问和保存的路径或URL,保留空格、查询参数外的引号。 +faststart将MP4元数据移到开头,方便开始播放;它不会提高网络下载速度。

  1. 在保存输出文件的工作文件夹中打开终端。使用本地播放列表时,准备副本及其分段文件,并保留原有文件夹结构。
  2. 把输入替换为实际列表路径或URL,另设一个输出文件名。
  3. 运行复制命令,检查是否报错,再播放结果。
无需重新编码,保存为MP4
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c copy -movflags +faststart "output.mp4"

兼容性不合时重编码,或使用VLC

目标设备无法播放复制结果时,可尝试H.264视频与AAC音频。命令需要FFmpeg具备libx264和AAC编码器。重编码耗时且可能改变画质、体积,请另存输出。 这是普通SDR视频示例,HDR转SDR的色调映射需要另行设置。

兼容性重编码:H.264视频与AAC音频
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c:v libx264 -crf 20 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart "output-compatible.mp4"

Windows版VLC通常从Media → Convert/Save选择Network输入,再设置转换配置与保存位置。配置可能叫H.264 + MP3 (MP4),AAC配置和名称随版本变化,macOS菜单也不同。

  1. 找到Media → Convert/Save及Network选项卡。
  2. 输入M3U8地址,选择Convert。
  3. 检查MP4转换配置,指定新的.mp4输出。
  4. 选择Start,结束后重新打开文件;界面不同请查对应版本帮助。

分别检查403、404与无声问题

403先查权限或过期,404先查地址变化或资源消失。若仅某个片段失败,检查其路径与初始化文件。本地移动文件夹也会断开引用,改重编码参数不能替代缺失数据。

无声时确认输入音频、独立音频列表及所选轨道,首轨未必是所需语言。使用获准的有效地址或官方下载。DRM或受限内容应采用服务支持的保存方式。

检查移动端、在线上传与完成文件

手机上先找官方下载或离线功能。使用在线转换前,确认是否还需片段、文件或地址是否发送到服务器。提供私人视频或带认证信息的链接前,了解处理与保留条件。

用目标播放器检查开头、中间、结尾的画面与声音,并对比时长。无结束标记的直播列表可能不会自动停止,也找不回已移除的早期片段。优先使用已结束的VOD。下方演示是我们自制的短篇完整HLS。

检查结果:音视频流与时长 将output.mp4替换为实际保存的文件名。重编码示例生成的是output-compatible.mp4。
ffprobe -v error -show_entries format=duration:stream=codec_type,codec_name,width,height -of json "output.mp4"
这是将我们自制的短篇HLS示例保存为MP4的结果。请播放检查时长和声音。

生成后对比时长,播放开头、中间和结尾并检查声音。确认无误再分享MP4,检查结束前保留原始播放列表和片段。

工具

参考资料

根据公开文件;不是全面的职能审计或安全审计。

全部指南 →