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