音频接收器和音频卡/设备之间有什么区别和关系?
一个接收器可以接收到同一声卡的多个设备吗?又名,接收器设备可以是一对多关系?
PS:我不是一个十足的菜鸟,但我对 Linux 音频也不是很了解
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [LG TV SSCR2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
gst-inspect-1.0 | grep -iP "audio sink|pipewire" | more
alsa: alsasink: Audio sink (ALSA)
autodetect: autoaudiosink: Auto audio sink
jack: jackaudiosink: Audio Sink (Jack)
oss4: oss4sink: OSS v4 Audio Sink
ossaudio: osssink: Audio Sink (OSS)
pipewire: pipewiredeviceprovider (GstDeviceProviderFactory)
pipewire: pipewiresink: PipeWire sink
pipewire: pipewiresrc: PipeWire source
pulseaudio: pulsesink: PulseAudio Audio Sink
通过计算机收听连接到 KEF LSX 扬声器的电视时的 Pipewire 处理(我也使用EasyEffects):
我对你的问题的评论的解释......
https://en.wikipedia.org/wiki/Sink_(计算)
因此,音频接收器是音频处理的目的地,例如扬声器。
声卡在另一只手...
https://en.wikipedia.org/wiki/Sound_card
因此,声卡既不是音频源,也不是音频目的地(接收器)。
声卡所做的只是转换数字信号。
音频源也称为媒体源(即媒体文件)。
声音处理管道由媒体源到媒体处理软件(使用声卡)再到媒体接收器组成。
请参阅下面的链接,了解 Microsoft 音频处理实现的概述,其中提到了接收器和源以及音频处理:
https://learn.microsoft.com/en-us/windows/win32/medfound/overview-of-the-media-foundation-architecture
编辑:
PC 上的音频处理由音频处理软件完成,由音频处理管道(软件事物)组成,类似于视频游戏开发中的渲染管道。
以类似的方式,GPU 如何在渲染管道中用于渲染(但不是目的地),声卡也用于音频转换,但本身并不是音频信号的目的地。
声卡接受输入(例如数字)并提供输出(例如模拟),其中输入和输出均由音频处理软件管理。
用户与音频软件的交互决定了使用哪些音频源和接收器(目的地)。
例如,如果要使用麦克风进行音频输入,那么这就是音频源,如果用户使用音频文件,那么它也是音频源。
音频软件将关闭。在驱动程序的帮助下与源或目的地设备(例如麦克风或扬声器)进行交互
音频管道(软件概念)从源开始,在麦克风音频输入的情况下,音频软件在声卡的帮助下将模拟信号转换为数字信号,以便音频软件可以使用。
因此,声卡是一种中间体,仅用于数字到模拟的音频处理,反之亦然,这是音频软件所需的,因为音频软件处理数字音频信号,而不处理模拟信号,要理解模拟信号,音频软件使用声卡用于转换。
一旦信号被声卡转换,音频软件将继续将音频信号沿着管道流向目的地。音频接收器
音频接收器可以是新的音频文件(例如,如果用户正在录制语音并保存到文件),也可以是扬声器(例如,如果用户正在播放音频)
音频接收器是音频管道的末端,其中源是音频管道的起点。
音频管道本身由音频软件管理。
在音频源和音频接收器之间,软件负责音频处理,其中包括使用声卡进行信号转换,因此声卡既不是源也不是目的地,而是音频软件使用的音频管道中的中间单元。
就像在渲染管道中一样,GPU 既不是视频游戏软件的源也不是接收器,而是由编码到游戏中的管道使用,音频软件在音频管道中使用声卡也是如此。
编辑2:
音频管道细分:
示例:如何使用麦克风来收听自己的声音?
因此,音频软件使用声卡两次,第一次将模拟转换为数字,然后再次将数字转换为模拟,因为硬件(麦克风和扬声器)不理解数字信号,但另一方面音频软件不模拟数字信号,因此需要用于转换的声卡能够处理它并将其发送到负责输出(或接收输入)的驱动程序。
在播放音频文件的情况下,信号已经是数字的,因此声卡将仅使用一次,即将数字到模拟发送到管理扬声器的驱动程序。(例如,没有模拟输入)
某些接收器指的是某些数据流。(在某些特定的声音服务器术语中)
如果没有任何声音服务器,音频应用程序会将其音频样本直接输出到硬件音频设备。在这些情况下不需要任何接收器概念。
接收器概念出现在某些特定的声音服务器中(从未阅读过它用于选择的插孔音频连接套件声音服务器)。
使用声音服务器时,音频应用程序将其数据发送到声音服务器。根据其术语,这使得一个水槽。
声音服务器可以使用该声音服务器术语输出到设备,这将产生另一个接收器
,但它也可以将音频样本接收到某些后处理应用程序,其本身接收到声音服务器,顺便发送到声音设备。
顺便说一句,该声音服务器也能够沉入......另一个声音服务器......:-)
来自评论:“服务器可以同时向 1 个以上的设备输出相同的(音频)数据吗?”
是的,关于引入该概念的声音服务器,由于其module-combine-sink,它还可以将设备输出的数据接收到,作为输入返回到某些应用程序,甚至返回到声音服务器本身得益于模块环回(但代价是完全不可接受的延迟)。请注意,由于 alsa 虚拟设备,无需任何声音服务器即可更快地实现相同的操作。