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

Java中用ffmpeg-cli-wrapper拼接视频遇Filter concat输出未连接问题

解决FFmpegBuilder中添加-map "[v]" -map "[a]"的问题

直接用FFmpegBuilder的addOutputMap()方法就能实现终端里-map "[v]" -map "[a]"的效果,把滤镜输出的标签作为参数传进去就行,下面是完整的示例代码:

// 假设你有一个动态的输入文件列表
List<String> inputFiles = Arrays.asList("video1.mp4", "video2.mp4", "video3.mp4");
int inputCount = inputFiles.size();

FFmpegBuilder builder = new FFmpegBuilder();

// 循环添加所有输入文件
for (String input : inputFiles) {
    builder.addInput(input);
}

// 添加concat滤镜,n是输入数量,v=1/a=1表示保留1路视频/音频流,输出标签[v][a]
builder.addFilter(String.format("concat=n=%d:v=1:a=1[v][a]", inputCount));

// 关键:添加映射,对应终端的-map "[v]"和-map "[a]"
builder.addOutputMap("[v]");
builder.addOutputMap("[a]");

// 设置输出文件及相关参数(比如编码格式,按需添加)
builder.addOutput("final_output.mp4")
       .setVideoCodec("libx264")
       .setAudioCodec("aac")
       .done();

// 后续执行FFmpeg命令的代码
FFmpegExecutor executor = new FFmpegExecutor(FFmpeg.atPath());
executor.createJob(builder).run();

原理很简单:concat滤镜生成的[v]和[a]是未连接的输出流,必须通过addOutputMap()明确告诉FFmpeg要把这些流映射到输出文件里,这样就不会再出现“Filter concat has an unconnected output”的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:37:31