使用FFmpeg将许多音频文件交叉淡入淡出?

时间:2018-10-03 02:46:36

标签: audio ffmpeg cross-fade

使用FFmpeg,我试图将许多音频文件组合成一个长文件,并且每个文件之间使用淡入淡出效果。为了使数字保持简单,假设我有10个输入文件,每个5分钟,并且我希望每个文件之间有10秒的淡入淡出。 (结果持续时间为48:30。)假设所有输入文件都具有相同的编解码器/比特率。

我很惊讶地发现淡化两个文件的简单性:

ffmpeg -i 0.mp3 -i 1.mp3 -vn -filter_complex acrossfade=d=10:c1=tri:c2=tri out.mp3

但是acrossfade过滤器不允许3个以上的输入。因此,我的幼稚解决方案是重复运行ffmpeg,使上一个中间输出与下一个输入文件交叉渐变。这不理想。这使我想到两个问题:

1。 acrossfade是否无损地复制流?(当然,除了主动交叉淡化的地方。)还是整个输入流都得到了重新编码?

如果输入流被完全重新编码,那么我的幼稚方法就很糟糕。在上面的示例中(调用acrossfade 9次),第一个文件的前4:50将被重新编码9次!如果我要合并50个文件,则第一个文件将被重新编码49次!

2。为了避免多次运行和重新编码问题,我可以在单个ffmpeg调用中实现多次淡入淡出的行为吗?

我想我需要一些长的滤镜,但是我还没有弄清楚。没有人有一个仅对3个输入文件进行交叉渐变的示例吗?由此,我可以自动为更长的链过滤图。

感谢任何提示!

0 个答案:

没有答案