You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用fluent-ffmpeg叠加多段视频时出现音频丢失问题求助

问题原因

你当前使用complexFilter仅配置了视频流的叠加规则,未明确指定音频流的映射规则,ffmpeg在使用复杂滤镜场景下不会默认携带输入音频,因此输出文件只有视频没有音频。

修复方案

在调用save方法前,添加2行配置即可:

  • 用-map 0:a参数指定将第一个输入(主视频)的音频流映射到输出文件
  • 用audioCodec('copy')指定直接拷贝音频流,不需要转码,大幅提升处理效率
修改后的完整代码
const mergedVideo = ffmpeg("/tmp/orignal.mp4");
screenShareFileNames.forEach((fileName) => mergedVideo.addInput(fileName));

const filters = screenShareFileNames.map((fileName, index) => {
    const inputs = index === 0 ? "[0:v][1:v]" : `[tmp][${index + 1}:v]`;
    const outputs = `tmp`;
          
    return {
            filter: "overlay",
            options: { enable: `between(t,${insertPoint},${insertPoint + 5})` },
            inputs,
            outputs,
          };
 });

 mergedVideo
    .complexFilter(filters, "tmp")
    .outputOptions('-map', '0:a') // 新增:映射主视频的音频流到输出
    .audioCodec('copy') // 新增:直接拷贝音频不转码
    .save("/tmp/final.mp4");

内容的提问来源于stack exchange,提问作者Benjamin Hawkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:36:03