使用 ffmpeg 在两个音频文件之间交叉淡入淡出?

Crossfading between two audio files with ffmpeg?

我有两个 mp3 文件,想将它们合并为一个新文件。但是,我只想要每个文件的 部分 ,并且我想在两者之间创建淡入淡出。

例如,我想要 a.mp3 的前 3 分钟,然后在 5 秒内从 1:20 分钟标记(在 b.mp3 内)开始交叉淡化到 b.mp3。

这是我想要的时间表说明:

因此生成的文件的总长度为 3:05 分钟加上 b.mp3 的长度减去 1:25 分钟,这归结为 b.mp3 的长度加上 1:40 分钟.

我对 ffmpeg 的源选择、映射和过滤器语法太缺乏经验,无法获得我想要的结果。例如,我可以对一个 mp3 文件应用淡入或淡出效果,但我不知道如何使这两个文件重叠,从而导致两个音频源之间出现交叉淡入淡出。

为了清楚起见:我正在寻找一个 命令行 来执行此操作,即使用独立版本的 ffmpeg,我没有在应用程序中使用 ffmpeg 作为库或任何东西。

使用

ffmpeg -i a.mp3 -i b.mp3
 -filter_complex
      "[0]atrim=0:185.0[a]; [1]atrim=80.0[b];
       [a][b]acrossfade=d=5.0"
 out.mp3

所有时间都以秒为单位。