FFMPEG。两个 dshow 源和一个输出。组合命令

FFMPEG。两个 dshow 源和一个输出。组合命令

办公室 PC 必须记录操作员对客户说的话,反之亦然 - 客户对操作员说的话。我得到了低资源解决方案。但是有没有办法将这两个命令结合起来?

ffmpeg.exe -f dshow -i audio="麦克风 MIC" -threads 2 m1.mp3

ffmpeg.exe -f dshow -i audio="麦克风立体声混音" -threads 2 m2.mp3

另外,第一个源可能被录制到左声道,第二个源则被录制到最终输出文件的右侧。也许还有一些关于其他选项的建议。谢谢。

答案1

简单混合输入,所有声道均会发出声音

ffmpeg.exe -f dshow -i audio="Microphone MIC" -f dshow -i audio="Microphone StereoMix" -filter_complex "[0][1] amix [a];[a] volume=volume=2 [b]" -map "[b]" -threads 2 m1.mp3

Volume添加过滤器是因为amix会使每个输入的音量减半。


如果您需要将每个输入分成不同的通道,则可以使用join,但如果您的输入声音是立体声,则应先将它们混合成单声道,以避免丢失任何东西。

假设单声道输入,结果将是第一个输入在左边,第二个输入在右边:

ffmpeg.exe -f dshow -i audio="Microphone MIC" -f dshow -i audio="Microphone StereoMix" -filter_complex "join=inputs=2:channel_layout=stereo:map=0.0-FL|1.0-FR" -threads 2 m2.mp3

假设是立体声输入,不需要调整音量,因为相同输入的每个通道应该有些相似:

ffmpeg.exe -f dshow -i audio="Microphone MIC" -f dshow -i audio="Microphone StereoMix" -filter_complex "[0]channelsplit=channel_layout=stereo[a][b];[1]channelsplit=channel_layout=stereo[c][d];[a][b]amix[e];[c][d]amix[f];[e][f]join=inputs=2:channel_layout=stereo:map=0.0-FL|1.0-FR[g]" -map "[g]" -threads 2 m3.mp3

相关内容