如何在特殊条件下使用 FFmpeg 合并两个音频文件?

Nya*_*gal 2 audio ffmpeg

我有一个特殊的问题。也许不是:D

\n\n

我有两个音频文件。首先。第一个音频文件已更改只需听到耳机右侧的声音。因为我使用了 FFmpeg 命令。

\n\n
ffmpeg -i fisrt.wav -af \xe2\x80\x9can=stereo|c1=c1\xe2\x80\x9d outr.wav\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,第二个音频文件已更改,只需听到耳机左侧的声音。我用了这个命令。

\n\n
ffmpeg -i second.wav -af \xe2\x80\x9cpan=stereo|c0=c0\xe2\x80\x9d outl.wav\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题

\n\n

我想将这些文件与特殊条件合并。这种情况是耳机右侧刚刚听到第一个audio/outr.wav/。然后,从耳机左侧听到第二个音频/outl.wav/。所以,我尝试了这个命令。

\n\n
ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map "[a]" output.wav\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,这个结果是不想要的。结果耳机两侧听到的音量​​不同。

\n\n

你能帮我吗?!

\n

llo*_*gan 6

将每个输入缩混到特定的输出通道

将每个输入缩混到特定的输出通道

您可以使用amerge平移过滤器在一个命令中完成所有操作:

ffmpeg -i fisrt.wav -i second.wav -filter_complex "[0][1]amerge=inputs=2,pan=stereo|FL<c0+c1|FR<c2+c3[a]" -map "[a]" output.wav
Run Code Online (Sandbox Code Playgroud)