我已经采用了两个命令行实用程序。我使用ffmpeg将m4a转换为mp3,然后使用mp3wrap将几个mp3组合成一个大的mp3。生成的文件如下所示:

BackgroundMusic.mp3 > Audio1.mp3 > Audio2.mp3

我需要更多类似的东西
Audio1.mp3 > Audio2.mp3
|_____________________|
           |
  BackgroundMusic.mp3

到背景音乐在后台连续播放的位置。能够更改每个轨道的音量也很好。

有谁知道像mp3wrap这样的命令行程序,但是还可以添加背景音轨吗?

我将无法使用GUI程序(例如Audacity),因为所有这些程序都会在服务器上自动执行。

谢谢!

最佳答案

您可以单独使用FFmpeg进行此操作。

ffmpeg -i input_audio1 -i input_audio2 -i input_background_audio -filter_complex "
aevalsrc=0:d=10[s1];
[0:a]volume=volume=0.1[volume0];
[1:a]volume=volume=0.1[volume1];
[2:a]volume=volume=0.1[volume2];
[s1][volume1]concat=n=2:v=0:a=1[ac1];
[volume0][ac1]amix=inputs=2[amixed1];
[amixed1][volume2]amix=inputs=2:duration=first" output_audio

您需要使用filter_complex链接要用于调整音量,静音空间,concat等过滤器的所有过滤器。

第一步,您可以连接两个需要一个接一个播放的音频文件。为此,我首先使用 aevalsrc 过滤器创建了无声音频,并且其持续时间与第一个音频剪辑的持续时间相同。然后使用 concat 过滤器来连接无声音频和第二音频。
为了调整音频,我使用了 volume 过滤器。您可以相应地调整音量值。要混合音频,可以使用 amix 过滤器。您可以指定duration属性来获取第一个输入,即[amixed1]持续时间。使用该选项,您可以在音频1+音频2的持续时间内停止整个音频,而无需在背景音频的整个持续时间内播放它。

希望这可以帮助!

10-08 17:31