了解来自设备的 ffmpeg 录制输入类型

了解来自设备的 ffmpeg 录制输入类型

使用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不过要再检查一下)。

相关内容