ffmpeg mp3合并-itsoffset无效

Itz*_*hak 5 audio merge mp3 ffmpeg

我使用ffmpeg在我的节点服务器中合并mp3.它的工作原理但偏移没有任何影响..我看不出有什么问题然后我想得到你的帮助:)

var command = "ffmpeg -i "+ input1+ " -itsoffset 40 -i " + input2 +" -filter_complex amerge -c:a libmp3lame -q:a 4 "+ output;

        exec(command, function (error, stdout, stderr) {
            if (stdout) console.log(stdout);
            if (stderr) console.log(stderr);

            if (error) {
                console.log('exec error: ' + error);
                response.statusCode = 404;
                response.end();

            } else {
                // Do something
            }

        });
Run Code Online (Sandbox Code Playgroud)

我也在我的电脑上尝试了它只是在终端,它也适用于同样的问题..

谢谢,Itzhak

Cha*_*ath 11

而不是使用itsoffset你可以将无声音频附加到音频的开头.假设我们有三个音频要合并,每个10秒长.因此,您可以按如下方式添加无声音频.

  • 第一个音频:没有静音
  • 第二个音频:将10秒无声音频添加到开头
  • 第三音频:将(10秒)x 2无声音频添加到开头

之后,您可以将所有这些音频混合在一起.要创建静音音频,您可以使用aevalsrc过滤器filter_complex.以下将适用于上述示例.

ffmpeg -i 0.mp3 -i 1.mp3 -i 2.mp3 -filter_complex 
"aevalsrc=0:d=10[s1];
aevalsrc=0:d=20[s2];
[s1][1:a]concat=n=2:v=0:a=1[ac1];
[s2][2:a]concat=n=2:v=0:a=1[ac2];
[0:a][ac1][ac2]amix=3[aout]" -map [aout] out.mp3
Run Code Online (Sandbox Code Playgroud)

这里[s1][s2]是第二和第三输入音频流对应的无声音频源.然后使用concat过滤器将每个静音源与相应的音频流连接起来.最后,所有连接的音频将使用amix过滤器混合.

另外,你可以尝试amergeadelaydoc本身有明确的解释.

希望这可以帮助!