2016-08-17 211 views
0

好吧,我想了几天的时间来找到合适的ffmpeg的命令将两个单声道文件合并成一个立体声文件,但有一个单声道的输出的左声道和单声道文件输入到输出的带输出的持续时间设置为最长的两个单声道文件的右声道第二。只是创造我想要的东西,没有任何关于持续时间,可以使用此命令:FFMPEG:两个单声道到一个立体声文件,其持续时间是最长的那两个单声道文件的

ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka 

但是,因为它在文档中称,产量的持续时间默认为最短的inputs..but我需要的输出具有最长输入单声道文件的持续时间。我发现,这可以使用amix命令来完成:

ffmpeg -i INPUT1 -i INPUT2 filter_complex amix=inputs=2:duration=longest:dropout_transition=3 -ac 2 OUTPUT 

此设置输出的文件中持续时间最长的输入,但不是把输入1至左声道和输入2到右声道,它并将它们合并成一个,把它们放在左右声道中。所以Left channel = input1 + input2;右声道输入1 =输入2 +

我怎样才能使输出的文件时间设置为最长,有这样的结构:

Left channel=input1 
Right channel=input2 

提前感谢!

回答

0

可以使用apad过滤垫短流,然后用amerge

假设left更短,然后用

ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0]apad[a];[a][1]amerge[aout]" -map "[aout]" output.mka 
+0

谢谢,但我怎样才能找出哪一个是短?因为我有很多必须被合并到立体声文件,所以我不能手动去检查哪一个? –