[pulseaudio-discuss] Receiving RTP streams with pulseaudio

Colin Guthrie gmane at colin.guthr.ie
Wed May 18 02:40:48 PDT 2011

'Twas brillig, and Rémi Denis-Courmont at 18/05/11 07:37 did gyre and
> On Tue, 17 May 2011 21:51:35 +0200, Michael Trunner <michael at trunner.de>
> wrote:
>> I'm trying to setup Pulseaudio to receive RTP/Multicast steams. Sender
>> should be vlc, (and receiver should be pulseaudio). I activated
>> module-rtp-recv (and module-rtp-send) with papref, but I can't get it
>> work. Can some one explain me what I have to do? Or how to debug it.
> First you need to make sure that VLC uses an RTP payload format that
> PulseAudio understands, typically L16/44100/2 (signed big endian 16-bits
> stereo at 44100 Hz). By default, VLC will not decode the audio. Also make
> sure SAP is enabled.
> For example:
> # IP=
> # vlc --sout-keep --no-sout-video --no-sout-spu \
>       --sout
> "#transcode{acodec=s16b,samplerate=44100}:gather:rtp{sap,dst=$IP}"
> Then you need to configure PulseAudio to use the standard SAP address as
> specified in IETF RFC2974 §3, corresponding to the multicast scope that VLC
> is configured to use, in particular:
> - (SAP.MCAST.NET) for global IPv4,
> - ff0e::2:7ffe for global IPv6,
> - for link-local IPv4,
> - ff02::2:7ffe for link-local IPv6.

Many thanks for the info Rémi :)

> By default, PulseAudio uses a proprietary non-standard SAP group, namely
> This cannot interoperate with VLC.

Interesting. I see from the history:

commit e1887b552ceb324f70732c85c7458119e03718b7
Author: Lennart Poettering <lennart at poettering.net>
Date:   Sun Apr 16 11:13:20 2006 +0000

    change default mcast address once again, to make sure our traffic
doesn't leave the network by default

Previously the address was

The change before that is:

commit c999fe40b841b035c7d0c873b4a4875e12e9c9a4
Author: Lennart Poettering <lennart at poettering.net>
Date:   Sun Apr 16 09:15:51 2006 +0000

    * deal properly with underruns, overflows and packet losses
    * change default mcast address
    * detect RTP loops

Which had the address as This was the address used when the
module was committed.

This default can be overridden in the module-rtp-recv module with the
sap_address= argument. And with the module-rtp-send module with the
destination= argument.

Hope that helps.

If you have any recommendations for the defaults, please feel free to
suggest them, but I guess the intention was to keep the traffic in house
by default. We should likely expose via paprefs the ability to choose a
public mutlicast group or something. WDYT?



Colin Guthrie

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

More information about the pulseaudio-discuss mailing list