我的视频文件中有4个音频流。它们来自4个麦克风,分别位于4个不同的人讲话处。我想将代码转码为预览文件,可以在耳机上收听此声音,从而听到每个人的声音。
我已经看到了-ac 2选项,但是我无法确定这是否将合并所有音频流,或者只是选择第一个。我也看过了合并过滤器,但是文档说这将在输出文件中产生4个音频通道。所以我想知道耳机将如何处理另外2个频道
答案 0 :(得分:0)
尝试使用amerge audio filter来解决类似的问题:How do I use ffmpeg to merge all audio streams (in a video file) into one audio channel?
amix应该更好地适合您的目的。
答案 1 :(得分:0)
您有几种选择。假设in.mp4
中的每个音频流都是单声道。
使用amerge过滤器和-ac 1
:
ffmpeg -i in.mp4 -filter_complex "[0:a]amerge=inputs=4[a]" -ac 1 -map 0:v -map "[a]" -c:v copy out.mp4
使用amix:
ffmpeg -i in.mp4 -filter_complex "[0:a]amix=inputs=4[a]" -map 0:v -map "[a]" -c:v copy out.mp4
具有合并和-ac 2
:
ffmpeg -i in.mp4 -filter_complex "[0:a]amerge=inputs=4[a]" -ac 2 -map 0:v -map "[a]" -c:v copy out.mp4
使用amerge和pan进行自定义缩混:
ffmpeg -i in.mp4 -filter_complex "[0:a]amerge=inputs=4,pan=stereo|FL<c0+0.75*c1+0.25*c2|FR<0.25*c1+0.75*c2+c3[a]" -map 0:v -map "[a]" -c:v copy out.mp4