Audio 如何使用ffmpeg向音频的静音部分添加其他音频?

Audio 如何使用ffmpeg向音频的静音部分添加其他音频?,audio,ffmpeg,Audio,Ffmpeg,我正在对音频文件的一部分进行静音处理,如下所示。如何使用ffmpeg向音频的静音部分添加其他音频 FFmpeg ffmpeg = new FFmpeg("ffmpeg"); FFprobe ffprobe = new FFprobe("ffprobe"); FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe); FFmpegProbeResult in = ffprobe.probe("Input.wav"); FFmpegB

我正在对音频文件的一部分进行静音处理,如下所示。如何使用ffmpeg向音频的静音部分添加其他音频

FFmpeg ffmpeg = new FFmpeg("ffmpeg");
FFprobe ffprobe = new FFprobe("ffprobe");
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
FFmpegProbeResult in = ffprobe.probe("Input.wav");
FFmpegBuilder builder = new **FFmpegBuilder().setInput(in).addOutput("Output.wav").setAudioFilter("volume=enable='between(t,94,123)':volume=0").done();**
executor.createJob(builder).run();

实现这一点的便捷方法是使用新音频修剪源和concat

ffmpeg -i in.wav -i insert.wav -filter_complex "[0]atrim=0:94[pre];[0]atrim=124,asetpts=PTS-STARTPTS[post];[1]atrim=0:30[mid];[pre][mid][post]concat=n=3:v=0:a=1" out.wav

非常感谢吉安。我正在使用ffmpeg cli包装器,但不幸的是,我找不到“filter_complex”的匹配属性。我将尝试其他方法,然后接受答案。要组合多个输入,您需要复杂的过滤器。有一种方法可以使用concat demuxer,但它会在音频接口处产生故障。我最终找到了正确的参数,但得到了以下错误。filtergraph描述[0]中的文件索引1无效atrim=0:94[pre];[0]atrim=124,asetpts=PTS-STARTPTS[post];[pre][1][post]concat=n=3:v=0:a=1。线程“main”java.lang.RuntimeException中的异常:java.io.IOException:src/main/resources/ffmpeg返回非零退出状态。检查标准输出。com.intuit.redact.RedactPackage.main(RedactPackage.java:39)上的net.bramp.ffmpeg.job.SinglePassFFmpegJob.run(SinglePassFFmpegJob.java:46)看起来并不像您添加了两个输入。我已经添加了两个输入。请参阅下面的代码片段。FFmpegBuilder builder=new FFmpegBuilder().setInput(in1).setInput(in2).setComplexFilter(“[0]atrim=0:94[pre];[0]atrim=124,asetpts=PTS-STARTPTS[post];[pre][1][post]concat=n=3:v=0:a=1”).addOutput(“src/main/resources/out.wav”).done();其中,FFmpegProbeResult in1=ffprobe.probe(“in.wav”);FFmpegProbeResult in2=ffprobe.probe(“insert.wav”);