在我的电脑上列出声卡信息。
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
:
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
它什么也不记录,扬声器和麦克风上的声音都无法记录。
通常不可能同时录制来自两个来源的音频。您必须首先使用此解决方案将音频从麦克风路由到扬声器,然后录制您在扬声器中听到的混音。