如何合并MPEG-DASH格式的init.mp4与seg-*.m4s文件生成完整视频
MPEG-DASH分片视频合并操作步骤
首先提前整理好你的本地文件:
- 把纯视频轨对应的
init.mp4和所有seg-*.m4s分片放到同一个文件夹,不要和音频文件混放 - 把纯音频轨对应的
init.mp4和所有seg-*.m4s分片放到另一个单独的文件夹 - 确认两个文件夹里的分片都是按序号排序的(
seg-1.m4s、seg-2.m4s……),没有缺漏
第一步:分别合并视频轨、音频轨的分片
不需要做格式转换,直接把init.mp4作为文件头拼在所有分片最前面即可,这是MPEG-DASH格式的标准拼接规则。
Windows系统操作
- 打开视频轨的文件夹,按住Shift键右键点击空白处,选择「在此处打开PowerShell窗口」
- 输入命令后按回车执行:
cmd /c "copy /b init.mp4 + seg-*.m4s 纯视频单轨.mp4" - 执行完成后文件夹内会生成只有画面没有声音的
纯视频单轨.mp4 - 切换到音频轨的文件夹,重复上述操作,执行命令:
cmd /c "copy /b init.mp4 + seg-*.m4s 纯音频单轨.mp4"
Mac/Linux系统操作
- 打开终端,通过
cd命令进入视频轨文件夹 - 输入命令后按回车执行:
cat init.mp4 seg-*.m4s > 纯视频单轨.mp4 - 执行完成后切换到音频轨文件夹,执行命令:
cat init.mp4 seg-*.m4s > 纯音频单轨.mp4
第二步:合并音视频轨得到完整视频
使用你已有的ffmpeg工具直接合并,不需要转码,速度快且不会损失画质音质:
- 把上一步生成的
纯视频单轨.mp4和纯音频单轨.mp4放到同一个文件夹 - 在该文件夹打开命令行窗口(PowerShell/终端均可)
- 输入命令后按回车执行:
ffmpeg -i 纯视频单轨.mp4 -i 纯音频单轨.mp4 -c copy 完整可播放视频.mp4 - 命令执行完成后得到的
完整可播放视频.mp4就是最终成品。
常见异常排查
- 如果单轨文件无法播放,优先检查分片是否有缺漏,或者排序异常(比如
seg-10排在seg-2前面),排序异常时可以手动按序号列出所有分片拼接即可 - 不需要把
init.mp4转成m4s格式,直接拼接就符合格式要求
内容的提问来源于stack exchange,提问作者Douglas Espindola
相关产品推荐
相关产品推荐

