[pulseaudio-discuss] Pulseaudio rtp multicasting
erik at slagter.name
Wed Oct 15 01:39:17 PDT 2008
I'd like to know what the modules-rtp-send and modules-rtp-recv actually
do EXACTLY. Or supposed to do ;-) The simple statement "sends audio via
rtp" won't cut it ;-)
The reason why I ask this: I have a (in my opinion) quite simple setup
with a server that runs pulseaudio and has 10 ethernet cards. Each
ethernet device has a seperate ip subnet and the traffic between the
subnet is routed by the linux kernel.
I'd like to have a setup where audio is multicasted to only the subnets
that have clients listening. This is afaik the whole idea of multicasting...
I have tried lots of setup's but all fail and from the very sparse
documentation about the rtp modules I cannot tell why.
My first attempt was a "vanilla" setup as shown in the example; load
module-rtp-send at the server and load module-rtp-recv at the client. No
parameters are specified. This has as result that the rtp client is sent
out to the default route (internet :-()
So I added a "multicast" route to the desired ethernet and then it
works. Problem is that you cannot add a multicast route to multiple
devices (which I think is contra-intuitive...).
So I loaded the module-rtp-send three times, for every client once, with
different multicast addresses. I added a multicast route for every used
multicast address to the proper ethernet device and then it works.
But I cannot imagine this is the way it's supposed to work as it doesn't
account for a client joining and leaving at all. It simply broadcasts on
the subnet and that's it.
I did a wireshark on the device and when it starts, the pulseaudio
client does send a IGMP join message, which is good. It's only that the
linux kernel doesn't seem to react on it.
So I installed xorp, a multicast-aware "router" and enabled IGMP mode.
It says it receives the IGMP message, it also knows the client has
joined the group as does the linux kernel (netstat -g). BUT it doesn't
change the routing tables accordingly. Maybe this is not neccessary for
multicast BUT the RTP traffic is still sent to the default route, so
something needs to be done to get the RTP traffic out of the proper
interface (automatically), but I don't know what.
Documentation about multicasting using linux is quite sparse and in
combination with pulseaudio it's simply-non-existing.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3328 bytes
Desc: S/MIME Cryptographic Signature
More information about the pulseaudio-discuss