【问题标题】:mp3 audio merging with -itsoffset using ffmpeg: no effect使用 ffmpeg 与 -itsoffset 合并的 mp3 音频:没有效果
【发布时间】:2015-11-03 15:23:42
【问题描述】:

我使用 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
            }

        });

我也在我的电脑上尝试过,只是在终端上,它也可以解决同样的问题..

谢谢, 伊扎克

【问题讨论】:

标签: audio merge ffmpeg mp3


【解决方案1】:

除了使用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

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

否则你可以试试amergeadelay,文档本身有明确的解释。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2016-06-13
    相关资源
    最近更新 更多