[pulseaudio-discuss] pulseaudio and remote desktop

Arun Raghavan arun.raghavan at collabora.co.uk
Wed Mar 14 22:41:28 PDT 2012

On Wed, 2012-03-14 at 22:34 -0700, Laxmikant Rashinkar wrote:
> Arun Raghavan wrote:
> > On Mon, 2012-03-12 at 15:42 -0700, LK Rashinkar wrote:
> >> Hi,
> >>
> >> Background:
> >> Xrdp is an open source RDP (Remote Desktop Protocol) server that
> >> runs on Unices.  It allows RDP clients running on Windows and Unices
> >> to connect to it and presents a Unix desktop on the client computer.
> >> So for example from a Windows 7 computer I can connect to an Xrdp
> >> server running on my Ubuntu system and I will then have access to
> >> my Ubuntu desktop on the Windows 7 computer.
> >>
> >> The problem:
> >> Xrdp does not yet support audio redirection, which means that RDP
> >> clients that connect to it cannot cannot hear any music/sound that is
> >> played on the server.
> >>
> >> RDP protocol has built in features that supports audio redirection.
> >> What I need to understand is how to use Pulseaudio to read audio data
> >> on a per user login basis, without playing any of the sound on the physical
> >> speaker on the server. For example, lets say I am logged into my ubuntu
> >> system and I'm playing a youtube video. User A  and User B login via
> >> xrdp and they both start playing different youtube videos. The audio
> >> from User A and B should not be played on the speaker on the server
> >> and I need a way to read the audio data from User A and B and
> >> using Pulseaudio.
> >>
> >> I'm sure PA has support for this, but if someone can guide me in the
> >> right direction, it will be helpful.
> > 
> > You could make a null sink and make it the default (preferably only
> > sink, so users can't play anything locally). You could then use the
> > monitor source to feed data to RDP.
> > 
> > -- Arun
> > 
> Hi Arun,
> thanks for both your replies. I tried out your NULL sink idea and it works
> just fine for me. I was able to play a MP3 file and youtube video simultaneously
> and both got recorded by reading from null monitor source. So I'll go the null
> sink way.
> One quick question though. Is it possible to rename the NULL sink dynamically
> to something else, say xrdp_sync?

You can give the sink a name at module load time using sink_name module
argument. So something like:

  pactl load-module module-null-sink sink_name="xrdp_sink"


More information about the pulseaudio-discuss mailing list