为什么不能同时在扬声器和麦克风中录音?

为什么不能同时在扬声器和麦克风中录音?

列出我的电脑上的声卡信息。

pacmd list-sources |grep name:
    name: <alsa_input.usb-SN0002-02.analog-mono>
    name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    name: <alsa_input.pci-0000_00_1b.0.analog-stereo>

将变量设置为简单的下一个命令:

speaker=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
mic=alsa_input.usb-SN0002-02.analog-mono

录制扬声器上播放的音乐:

ffmpeg -use_wallclock_as_timestamps 1 -f pulse -i $speaker -acodec copy  /tmp/out.mkv

录制对着麦克风说话的声音:

ffmpeg -use_wallclock_as_timestamps 1 -f pulse -i $mic -acodec copy  /tmp/out.mkv

现在录制扬声器和麦克风中的声音:

ffmpeg -use_wallclock_as_timestamps 1 \
    -f pulse -i $speaker -f pulse -i $mic \
    -acodec copy  /tmp/out.mkv

它在屏幕上输出信息:

Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, pulse, from 'alsa_output.pci-0000_00_1b.0.analog-stereo.monitor':
  Duration: N/A, start: 1606130053.472713, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, pulse, from 'alsa_input.usb-SN0002.analog-mono':
  Duration: N/A, start: 1606130053.597432, bitrate: 1536 kb/s
    Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s

它没有记录对着麦克风说话的声音/tmp/out.mkv,只记录了扬声器播放的声音?为什么 ffmpeg 会猜测输入流的通道布局?

我已经尝试过这个方法superuser

https://superuser.com/questions/899352/ffmpeg-commandline-options-to-recording-audio-from-mic-and-speakers

ffmpeg -use_wallclock_as_timestamps 1 \
    -f pulse -i $speaker -f pulse -i $mic   \
    -acodec libmp3lame -map 0:0 -map 1:0   /tmp/out.mkv

它什么都没有记录,扬声器和麦克风的声音都无法录制。

答案1

通常不可能同时录制来自两个源的音频。您必须先使用此解决方案将麦克风的音频传送到扬声器,然后录制您在扬声器中听到的混音。

相关内容