FFMPEG. Два dshow источника и один выход. Объединить команды

Офисный ПК должен записывать, что операторы говорят клиентам, и наоборот - клиенты оператору. Я получил низкое ресурсное решение. Но есть ли способ объединить эти две команды?

ffmpeg.exe -f dshow -i audio="Микрофон микрофона" - темы 2 m1.mp3

а также

ffmpeg.exe -f dshow -i audio="Микрофон StereoMix" - темы 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
Другие вопросы по тегам