(Android)将一个音频叠加到另一个音频

时间:2015-07-22 02:04:18

标签: android audio ffmpeg android-audiomanager

假设我有一个音频文件(10s),我还有另一个(2s)。我想要的是将第二个覆盖到第一个,例如:第一个文件(10s): 1111111111 (其中" 1"代表1秒),第二个文件(2s) ): 22 。如果我想在时间线5s,6s上覆盖第一个文件的第二个文件: 1111221111 。我应该怎么做?我已经搜索了一些解决方案,如:ffmpeg,但我希望这可以在不使用服务器的情况下完成。感谢。

1 个答案:

答案 0 :(得分:1)

您正在寻找

amix过滤器。它将根据您的需要混合/覆盖音频。您只需使用aevalsrc向第二个音频添加4秒无声音频,然后将结果与第一个音频混合。

ffmpeg -i input_audio1 -i input_audio2 -filter_complex "
aevalsrc=0:d=4[s1];
[s1][1:a]concat=n=2:a=1:v=0[a2];
[0:a][a2]amix" -c:a libmp3lame output_audio

您可以根据输出的音频格式使用适当的音频编解码器。在这里,我使用libmp3lame作为mp3,您可以找到所有编解码器here。此外,如果您需要将音频修剪为特定长度,则可以相应地使用atrim filter_complex-t选项。

希望这有帮助!