FFMPEG:两个单声道到一个立体声文件,其持续时间是这两个单声道文件中最长的
Posted
技术标签:
【中文标题】FFMPEG:两个单声道到一个立体声文件,其持续时间是这两个单声道文件中最长的【英文标题】:FFMPEG: Two mono to one stereo file whose duration is the longest of those two mono files 【发布时间】:2016-08-17 10:15:56 【问题描述】:好的,我试图找到正确的 ffmpeg 命令将两个单声道文件放入一个立体声文件,但一个单声道文件输入到输出的左声道,第二个单声道文件输入到输出的右声道输出的持续时间设置为这两个单声道文件中最长的一个。要创建我想要的内容而不考虑持续时间,请使用以下命令:
ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka
但是,正如它在文档中所说,输出的持续时间默认为最短的输入..但我需要输出具有最长的输入单声道文件的持续时间。我发现这可以使用amix
command 来完成:
ffmpeg -i INPUT1 -i INPUT2 filter_complex amix=inputs=2:duration=longest:dropout_transition=3 -ac 2 OUTPUT
这会将输出的文件持续时间设置为输入的最长,但不是将 input1 放在左声道,将 input2 放在右声道,而是将它们合并为一个并将它们放在左右声道中。所以左声道=input1+input2;右声道=input1+input2
如何将输出的文件持续时间设置为最长并具有以下结构:
Left channel=input1
Right channel=input2
提前致谢!
【问题讨论】:
【参考方案1】:您可以使用apad
过滤器填充较短的流,然后使用amerge
。
假设left
更短,那么使用
ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0]apad[a];[a][1]amerge[aout]" -map "[aout]" output.mka
【讨论】:
谢谢,但我怎样才能知道哪个更短?因为我有很多文件需要合并到立体声中,所以我无法手动检查哪个...以上是关于FFMPEG:两个单声道到一个立体声文件,其持续时间是这两个单声道文件中最长的的主要内容,如果未能解决你的问题,请参考以下文章