使用pactl
,我得到以下接收器:
pactl list sinks short
# 0 alsa_output.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
因为只有一个接收器,我希望它是默认接收器,以便以下命令具有相同的行为:
ffmpeg -f pulse -i 0 -c:a flac "$HOME/audio.flac"
ffmpeg -f pulse -i default -c:a flac "$HOME/audio.flac"
然而,第一个副本音频照原样来自播放的媒体(是从源录制吗?),而后者使用内置麦克风录制从扬声器捕获的音频。
最重要的是,虽然看起来更像第一个选项,但以下命令使用阿尔萨其行为类似于第二个选项(从内置麦克风记录):
ffmpeg -f alsa -i hw:0 -c:a flac "$HOME/audio.flac"
我的目标是了解如何区分这些输入以及何时使用 alsa 或 pulse 来记录播放的媒体音频和 pactl 列出的任何其他接收器(即内置或外部麦克风)。
我理解,很可能需要针对特定设备进行配置,并且希望得到指导,而不是一劳永逸的解决方案。
答案1
你 做 了pactl list sinks short
你 真正 应该 做 的 事pactl list sources short
.
当ffmpeg -f pulse -i
你指定一个来源,而不是水槽。
我的系统上的第一个 ( 0
) 脉冲源是alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
音频输出的监视器(因此它会准确记录正在播放的内容)。1
我的系统上的第二个 ( ) 源是内置笔记本电脑麦克风。
尝试这两个命令:
ffmpeg -f pulse -i 1 -c:a flac "$HOME/audio.flac"
ffmpeg -f pulse -i default -c:a flac "$HOME/audio.flac"
应该是一样的。(pactl list sources short
不过要再检查一下)。