ffmpeg使用跨过滤器连接多个音频

时间:2017-04-30 01:44:13

标签: audio ffmpeg multiple-files

我有多个音频文件:

001.ogg, 002.ogg, ..., 100.ogg

我需要在他们之间加入过滤过滤器的文件。

我累积地做了两个两个:

ffmpeg -i 001.ogg -i 002.ogg -filter_complex acrossfade=d=3:o=1:c1=tri:c2=tri -b:a 128k -o r01.ogg
ffmpeg -i r01.ogg -i 003.ogg -filter_complex acrossfade=d=3:o=1:c1=tri:c2=tri -b:a 128k -o r02.ogg
ffmpeg -i r02.ogg -i 004.ogg -filter_complex acrossfade=d=3:o=1:c1=tri:c2=tri -b:a 128k -o r02.ogg

....
ffmpeg -i r98.ogg -i 100.ogg -filter_complex acrossfade=d=3:o=1:c1=tri:c2=tri -b:a 128k -o final.ogg

但是final.ogg在第一首歌曲上没有良好的声音(质量较差,而且更累积)。

如何在final.ogg

中避免质量下降

其他方式是concat但是:如何使用concat定义过滤器的过滤器?

ffmpeg -i "concat:1.ogg|2.ogg|...|100.ogg" copy final.ogg

1 个答案:

答案 0 :(得分:2)

使用filter_complex在一个命令中执行此操作。 e.g。

ffmpeg -i 1.ogg -i 2.ogg -i 3.ogg -i 4.ogg
 -filter_complex
      "[0][1]acrossfade=d=3:o=1:c1=tri:c2=tri[01];
       [01][2]acrossfade=d=3:o=1:c1=tri:c2=tri[02];
       [02][3]acrossfade=d=3:o=1:c1=tri:c2=tri"
 -b:a 128k final.ogg