fluent ffmpeg设置音频电平,带复合滤波器

fluent ffmpeg设置音频电平,带复合滤波器,ffmpeg,fluent-ffmpeg,Ffmpeg,Fluent Ffmpeg,我希望将2个音频与ffmpeg fluent混合,下面是用于此目的的代码 ffmpeg() .input(audio1) .input(audio2) .complexFilter([ { filter: 'amix', options: { inputs: 2, duration: 'shortest' } } ]) .on('end', async function (output) { console.log(output, 'fil

我希望将2个音频与ffmpeg fluent混合,下面是用于此目的的代码

ffmpeg()
  .input(audio1)
  .input(audio2)
  .complexFilter([
    {
      filter: 'amix', options: { inputs: 2, duration: 'shortest' }
    }
  ])
  .on('end', async function (output) {
    console.log(output, 'files have been merged and saved.')
  })
  .saveToFile("mix.mp3");

现在我还想独立设置这些曲目的音量,尝试将音量作为音频过滤器传递,但是当使用复合过滤器时,它似乎不接受音频过滤器。

我知道这个帖子已经有几个月了,但我想我还是会回答的,因为我发现了如何做,如果有人像我一样找到了这个帖子,他们会有答案的

const command = new FfmpegCommand();
    //create audio file with voice and engine sound under.
    await command
    .addInput(inputFilePath)
    .addInput('./audio/utility/RB16BengineOnboard.mp3').seekInput(40)
    .complexFilter([{
      filter: 'volume',
      options: ['1.0'],
      inputs: "0:0",
      outputs: "[s1]"
    },
    {
      filter: 'volume',
      options: ['0.15'],
      inputs: "1:0",
      outputs: "[s2]"
    },
    {
      filter: 'amix',
      inputs: ["[s1]","[s2]"],
      options: ['duration=first','dropout_transition=0']
    }]).output('./audio/temp/overlayed.mp3').on('error', function(err) {
      console.log(err);
    })
    .on('end', function() {
      console.log('Amixed audio files together.');
    })
    .run();
对于输入:“0:0”,第一个0表示第一个addInput文件a,第二个0表示该文件的音频轨迹。 如下文所述:


代码的其余部分是非常自解释的,因为它是卷,并且输出命名了该过滤器的输出,因此可以在代码中稍后用作amix过滤器的输入。

我知道这个线程已经有几个月了,但我想我还是会回答它,因为我发现了如何做,如果有人找到了这篇文章就像我做的那样,他们会得到答案的

const command = new FfmpegCommand();
    //create audio file with voice and engine sound under.
    await command
    .addInput(inputFilePath)
    .addInput('./audio/utility/RB16BengineOnboard.mp3').seekInput(40)
    .complexFilter([{
      filter: 'volume',
      options: ['1.0'],
      inputs: "0:0",
      outputs: "[s1]"
    },
    {
      filter: 'volume',
      options: ['0.15'],
      inputs: "1:0",
      outputs: "[s2]"
    },
    {
      filter: 'amix',
      inputs: ["[s1]","[s2]"],
      options: ['duration=first','dropout_transition=0']
    }]).output('./audio/temp/overlayed.mp3').on('error', function(err) {
      console.log(err);
    })
    .on('end', function() {
      console.log('Amixed audio files together.');
    })
    .run();
对于输入:“0:0”,第一个0表示第一个addInput文件a,第二个0表示该文件的音频轨迹。 如下文所述:

代码的其余部分是非常自解释的,因为它是卷,并且输出命名了该过滤器的输出,因此可以稍后在代码中用作amix过滤器的输入