我有几个 IP PoE 扬声器和带有 IP 转换器的普通扬声器,连接到 LAN 上的通用网络交换机。
我可以使用什么或如何设置我的网络,以便麦克风从 Linux 计算机录制的音频可以流式传输到网络上的所有或选定的 IP 扬声器(例如,通过其 IP 地址)?我基本上想设置广播系统(例如,向另一个房间广播消息)。如果不是从麦克风,将任何音频流式传输到 IP 扬声器将是一个很好的第一步。
这是 PulseAudio 可以处理的东西吗?或者是否有某种管理软件可用于控制 LAN 扬声器?
答案1
这取决于哪个协议这些扬声器/转换器将支持。
PulseAudio 有一个 RAOP 模块(Debian/Ubuntu 软件包pulseaudio-module-raop
),可以将音频发送到支持 Apple AirPlay 的设备。
RAOP 接收器(= 可以接收 AirPlay 音频的设备)可以自动发现,因此您可能会运行pacmd list-sinks
并发现您的系统已经发现任何支持 AirPlay 的设备。同样,您可以用来pacmd list-sources
识别麦克风的 PulseAudio 名称 - 您将需要该信息。
您可以用于pavucontrol
以交互方式将任何音频流发送到 PulseAudio 检测到的任何设备。
如果您想使用麦克风,您可以尝试加载 Pulseaudio 环回模块以将麦克风连接到接收设备:
pactl load-module module-loopback source="<name of PulseAudio source>" sink="<name of sink>"
对于 Chromecast 兼容和其他支持 DLNA/uPnP 的音频设备,有脉冲音频DNA(首先检查您的发行版的软件包集合,它可能已经存在)。
使用它们,您需要pulseaudio-dlna
首先启动该进程,以便它可以自动发现任何支持 DLNA 的设备。由于支持 DLNA 的设备多种多样,pulseaudio-dlna
如果您发现默认编解码器或比特率选择在特定硬件上产生不良结果,您可以选择指定各种选项。之后,程序应与支持 AirPlay 的设备相同。
还支持 RTP 协议。 这另一个问题可能有你也想学习的有用命令。
使用RTP,您可以直接指定要用于RTP发送器模块的PulseAudio源的名称,因此这里不需要环回模块:
pactl load-module module-rtp-send source="<name of PulseAudio source>" mtu=1408 destination_ip=<IP address of RTP device>