一直在尝试让 Pulseaudio 从 VLC 接收 RTP 流。我可以让它接收 TCP 音频流,没有问题 - 运行 Pulse 的 pi 正在按预期接收多播数据,但是当运行 --verbose 时,我只是看到它挂起。 sap_address 配置为正确的网络,并且 rcv 未注释,它是否在侦听所有端口,因为没有定义端口?地址后面需要加CIDR吗?
答案1
我不确定你到底尝试了什么(你没有指定),但我可以通过以下方式让两个pulseaudio服务器通过多播RTP进行通信。
在发件人身上,
pacmd load-module module-rtp-send source=name_of_mic_source destination_ip=232.43.211.230 inhibit_auto_suspend=always
其中name_of_mic_source
是连接到麦克风进行测试的源(用于pamcd list-sources | grep name:
查看名称,忽略尖括号)。
在接收器上,
pacmd load-module module-null-sink sink_name=rtpsink
pacmd load-module module-rtp-recv sink=rtpsink sap_address=232.43.211.230
这会创建一个“空”接收器,我可以用它进行监控,pavucontrol
以验证我在麦克风前发出的噪音是否通过。 Wireshark 验证数据包是否确实是多播的。
它也无需destination_ip
响应即可工作。sap_address
,在这种情况下224.0.0.56
将使用默认多播组。然而,该组是链路本地的,因此不会被路由,并且两台计算机必须位于同一网段上才能工作。
这是一个测试设置。要转发来自vlc
等的声音,我将在发送器上创建空接收器,让vlc
播放到此接收器,使用关联的rtpsink.monitor
源module-rtp-send
,然后module-rtp-recv
直接连接到接收器上的可听接收器。
我还没有尝试过直接由 生成的 RTP 流vlc
,但如果您描述您的设置,我也可以对此进行测试。如果出现问题,应该先将 SDP/SAP 公告与 Wireshark 进行比较,看看问题是否存在。