Raspberry Pi UPnP media player

My immediate thought of what to do with my RPi was to set it up so that I could stream audio to the kitchen. I wanted to be able to listen to my music collection (stored on an XBMC server) and podcasts (from my phone), and be able to control everything from my phone. I achieved this by setting up the RPi as a UPnP media renderer, with XBMC as the UPnP media server and my phone as the UPnP control point (and media server). It runs the very minimal GMediaRender on the RPi Debian image. Below is a little tutorial on how I did it:


Firstly, install all the required software:

sudo apt-get install alsa-base alsa-tools alsa-utils gstreamer0.10-alsa \
gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-base \
libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 libgstreamer0.10-dev \
gstreamer0.10-plugins-good gstreamer0.10-tools libupnp-dev automake cvs

ALSA setup

Make sure that the username you’re using has permission to access the sound card:

sudo useradd -G audio <username>

To enable the sound card, you need to add the following line to /etc/modules:


After you do that, reboot the machine so that the module is loaded:

sudo reboot

To make sure that ALSA is working, list the devices:

aplay -l

You should see something like this:

card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]

If you want to use the headphone socket instead of audio over HDMI, you’ll need to change the setting:

sudo amixer cset numid=3 1

Finally – to check the sound is working – run the speaker test:


GMediaRender setup

EDIT: As the GMediaRender project appears to be dormant and have some missing features, Henner Zeller has resurrected it back into life in the form of GMediaRender-resurrect. You’re probably better off using his code instead.

You’ll want to use the very latest version of GMediaRender, which can be downloaded from here using CVS:

cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/gmrender co .

Once that downloads, run the following commands to compile and install the program:

cd gmrender
sudo make install

Now, for the moment of truth, navigate to your home directory and launch the program:

gmediarender -f "Raspberry Pi"

You should be able to use any UPnP control point (such as BubbleUPnP) to send audio from a UPnP media server (like XBMC) to your RPi.

Launch on boot

I’ve been trying to set it up so that GMediaRender launches on boot so that I don’t have to log in every time. None of the techniques I’ve tried so far (crontab @reboot, /etc/rc.local, .bashrc) have worked, so any suggestions are welcome 🙂

EDIT: @MJFComputerServ has kindly pointed me towards this article which explains how to write a /etc/init.d script to launch a program.

Do do this for GMediaRender, copy the following to /etc/init.d/gmediarender

# Provides: gmediarender
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start GMediaRender at boot time
# Description: Start GMediaRender at boot time.
#! /bin/sh
# /etc/init.d/gmediarender
export USER HOME
case "$1" in
 echo "Starting GMediaRender"
 /usr/local/bin/gmediarender -f "Raspberry Pi"
 echo "Stopping GMediaRender"
 killall gmediarender
 echo "Usage: /etc/init.d/gmediarender {start|stop}"
 exit 1
exit 0

Make the file executable:

sudo chmod 755 /etc/init.d/gmediarender

And configure the system to run it on startup:

sudo update-rc.d gmediarender defaults

Works for me – let me know how you get on!

70 thoughts on “Raspberry Pi UPnP media player

  1. Launching on boot. (untested as yet)

    Just following the VNC startup script here http://elinux.org/RPi_VNC_Server

    Make a /etc/init.d/gmedia script with the following.

    # Provides: gmediarendedr
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start Gmedia Server at boot time
    # Description: Start Gmedia Server at boot time.

    #! /bin/sh
    # /etc/init.d/gmedia


    export USER HOME

    case “$1” in
    echo “Starting GMedia Server”
    /usr/bin/gmediarender -f “Raspberry Pi”

    echo “Stopping VNC Server”
    /usr/bin/gmediarender -kill “Raspberry Pi”

    echo “Usage: /etc/init.d/gmedia {start|stop}”
    exit 1

    exit 0

    sudo chmod 755 /etc/init.d/gmedia
    sudo update-rc.d /etc/init.d/gmedia

    Will try this later today but I think it works in theory. Runs as root but I don’t think you can run as different user through an init script. You could put the command in your ~/.profile script to run it as you log on.

  2. fifthQ says:

    Thanks for this. I’ve followed your guide and now have gstreamer working on my Pi. Has anyone experienced problems trying to pause or fast forward a track from BubbleUPnP or UPnPlay on Android? Using both those apps, I’m also finding playback stops at the end of each track, not playing through a playlist like it should. Anyone else seen this?

    • Keith says:

      I cannot comment on the playlist functionality, but stop and volume do not work and that is a show stopper for me. I ran across m3player (https://github.com/jCoderZ/m3player), which is much more current, but it will not compile on the raspberry. It is missing gtkdocize in order to compile the package (apt-get install gtk-doc is not found). I may try cross compiling… I ha veno idea if this is easier than fixing gmerdiarender, but am trying.

      • Keith says:

        Well, I updated the installation and was able to compile it after I installed a ton of packages. “sudo apt-get install gtk-doc, gupnp-1.0, libasound2-dev”, It will compile. I then edited the run.sh to point to the proper library. It shows up as a device on the LAN, but I cannot play anything. I get this error:
        (m3player:14184): GStreamer-CRITICAL **: gst_element_link_many: assertion `GST_IS_ELEMENT (element_2)’ failed

        ** (m3player:14184): WARNING **: Failed to link elements!

        (m3player:14184): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
        Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
        GConf Error: No D-BUS daemon running

        ** (m3player:14184): WARNING **: Command line `dbus-launch –autolaunch=eb95d80869be1ad62af36ec5502c41a1 –binary-syntax –close-stderr’ exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n

        Don’t know what this means, but will ping the author. It also does not have volume working, but it may have better functionality than the gmediarender program which is alpha and no longer under development.

  3. […] a bit of help from this page by Chris Baume, I set up my @Raspberry_Pi as a media streamer in the @CromerAcademy staff room. […]

  4. Peter says:

    Hi Chris,

    The kitchen radio is just what I wanted to try first on my PI. Using Rasbian, I get the following error printout during ./autogen.sh

    pi@raspberrypi ~/gmrender $ ./autogen.sh
    autoreconf: Entering directory `.’
    autoreconf: configure.in: not using Gettext
    autoreconf: running: aclocal –force
    autoreconf: configure.in: tracing
    autoreconf: configure.in: not using Libtool
    autoreconf: running: /usr/bin/autoconf –force
    configure.in:53: error: possibly undefined macro: AC_SUBST
    If this token and others are legitimate, please use m4_pattern_allow.
    See the Autoconf documentation.
    autoreconf: /usr/bin/autoconf failed with exit status: 1
    pi@raspberrypi ~/gmrender $

    Have you or any of all clever boys and girls out there any idea?


  5. Mikael says:

    Thx mate just the help i needed 🙂 works like a charm. I use it for my android tablet to stream to my hifi connected to my ubuntu server (to be replaced with a RPI when i´ll recive it)


  6. Keith says:

    It appears to work as well as gmediarender allows. Unfortunately, gmediarender appears to be a dead project with no updates since 2007!. There is only some functionality and in some ways it is better than the sony NS400 as it allows playing ssome media types that the sony will not allow. I have it running on my RPi, but volume does not work and it will not allow pausing or stopping a stream-ed feed. Stopping music from the local device appears to work (music on my android phone), but a net-radio stream will not nor will streamed music from the music server running windows 7. When I try to pause a song from my control point (android phone) playing from a server (windows &) to the PI running gmediarender, I get this:

    Got a valid action, but no handler defined (!)
    ErrCode: 0
    Socket: 215
    ErrStr: ”
    ActionName: ‘GetCurrentTransportActions’
    DevUDN: ‘uuid:GMediaRender-1_0-000-000-002’
    ServiceID: ‘urn:schemas-upnp-org:service:AVTransport’
    obtain_instanceid: InstanceID=’0′
    Action was a success!

    Please someone take this up and finish the gmediarender project. The Pi is great for this!


  7. Kari says:

    Managed to get this one working, although the sound quality through headphone output is abysmal. Has anyone ideas why.

    • I’ll second that. In fact dodgy sound quality from both analog 3.5mm and HDMI outputs. Any ideas? I’m on latest Debian Wheezy as of today 18/09

      • Kari says:

        Installed MPD instead of gmediarender. Sound problems are gone, and the functionality is just what I needed. MPD is not DLNA/UPNP compatible, it uses its own protocol.

  8. @Kari thanks for the pointer, I was hoping to stick with open source protocols but MPD/MPC seems to be working just fine, hope to post a blog on my build process over the next few days.

    next noobish question… how do I now uninstall/remove gmediarender seeing as it’s not installed through the normal repository process?

    • Petrus says:

      I am also interested in this.
      I installed the gmrender as described in this article but was not very satisfied. Therefore I also tested gmrender-resurrect from hzeller and it works very well. Now I would like to ‘clean’ my RPi and remove the first installation without corrupting the gmrender-resurrect. I am not sure but I think they share some compontents like gstreamer.
      In fact, I do not know how to uninstall programs which I did not obtain via apt-get install at all. So would you please give me a quick hint?

  9. Keith says:

    When I first tried to run this, the audio was awful. Then I installed pulseaudio and used the alsamixer to adjust the sound and it became ‘good’, IMO. At least through the headphones.

    I, too, want to stay with UPNP/DLNA capability as that protocol will work best in my system.

  10. I tried the GMediaRenderer but there were a lot of features missing such as simply ‘Pause’, seeking or display the current position. Also, the project seems to be dormant since 2007 or so. So I forked it to add the missing features. https://github.com/hzeller/gmrender-resurrect . It is only a few days since I started, but it is already much more usable.
    I am using it on my CuBox, which is a similar device to Raspberry Pi.

  11. Keith says:


    Thanks for picking this up. I set it up and compiled it for Raspberry. It works ‘differently’ than gmediarender in that I can get it to play, but cannot stop and some of the android apps do not control it at all. I general I use “Air Music” which is free on the android market (It shows up as DK Player). I tried bubbleUp, upNPlay, 2Player (nothing shows in now playing nor will it play), I have gotten this:
    Action ‘SetAVTransportURI’ was a success!
    Action ‘Play’ was a success!

    The android player flashes up a error 500. When attempting to change tracks, I get error 501.

    The only player I have been able to get to work to any effect is the one that came on my Motorola Atrix. (DLNA Player) . It will start playback, The renderer says this (looks like some gstreamer issue):
    GStreamer: play: State change: ‘PAUSED’ -> ‘PLAYING’, PENDING: ‘VOID_PENDING’
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: mpegaudioparse1: unhandled message type 16 (tag)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: queue21: unhandled message type 32 (buffering)
    GStreamer: mpegaudioparse1: unhandled message type 262144 (duration)

    The phone states that Remote device does not support this functionality” even though playback starts and I can stop, pause and play the stream.

    On AirPlayer (DK Player), I can start a song, but cannot stop, pause or anything. If I select another stream/song, it will not change to the new song even though the renderer reports:

    Action ‘SetAVTransportURI’ was a success!
    Action ‘Play’ was a success!

  12. Hi Keith,
    Thanks for trying out my experimental version.

    I sometimes do see problems that renderer and client go out-of-sync (so that I get the 500 errors, probably due to some lost events), but in general play/stop/pause ‘should’ work. Also changing tracks. I am still learning the details of the wire protocol and adding more ways to debug this to make this more robust. Stay tuned 🙂
    In genereal, when I restart the gmstreamer I found that I needed to restart BubbleUPnP because states seem to get out-of-sync.

    Right now, I play from a playlist, that seems to work, I don’t know about playing ‘tracks’ (which is a different terminology apparently in UPnP – tracks seem to be something within an album, which is handled differently from just sending a sequence of URIs to play).

    The messages you see (GStreamer: …) are normal and indicate that gstreamer is actually doing something.

    The ‘not supporting functionality’ could be due to some mis-communication of the capabilities, though it is strange that things work anyway. Does this message always come up on any command ? (This was the Atrix player I presume ?).

    For reference, I am using BubbleUPnP (on Android) as controller and MinimServer as server; I am going to add more Android UPnP clients that I can hold of while improving the robustness of the protocol.

    thanks for trying – and stay tuned 🙂

  13. Hi Keith,
    So I have tested some of the players you mentioned.

    The “Air Music” seems to be able to show the current playing thing (sometimes). It can emit the ‘pause’ state change, but then cannot deal with the state change as sent back – this is the reason why the pause() action succeeds, but the player does not show it. I don’t know yet what the player expects but doesn’t get. Need to dig deeper.

    Same with 2player: it seems to be able to see the current piece, can emit ‘pause’, but then does not display the paused state.

    Only BubbleUPnP can detect the state change – I use that ‘in production’ in my living room. I am investigating the other cases – might well be that there is some trouble with the protocol.

    Keep ‘git pull’-ing. You find my eMail address in the README.md of the project.

  14. Keith says:


    I tried it this AM. Did a “git pull”, ” make clean”, “./autogen.sh”, “make” and I get this error:

    upnp_transport.o: In function `change_and_notify_transport’:
    upnp_transport.c:(.text+0x504): undefined reference to `assert’
    collect2: ld returned 1 exit status
    make[2]: *** [gmediarender] Error 1
    make[2]: Leaving directory `/home/pi/gmrender-resurrect/src’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/pi/gmrender-resurrect’
    make: *** [all] Error 2

  15. welf says:

    Thanks to Chris for the blog post and to Henner for his work on the software. I have just got this sort of working. Currently testing with control from my laptop running Ubuntu.
    Initially I tried with gupnp control point. This responded to volume changes, but did nothing when the play button was pressed. The pause button gave “upnp_set_error: Transition not allowed”.
    Next I tried Leia. This gave the error “Unknown action ‘PrepareForConnection’ for service ‘urn:schemas-upnp-org:service:ConnectionManager'” and didn’t get any further.
    Finally I tried eezupnp. This seems to continuously make requests even when idling, but it was able to play/pause, change volume, seek within the song and skip between songs. Unfortunately when it gets to the end of a song it continues trying to play past the end point. This then stops it from playing anything else, requiring a reset.
    Some of those issues may be with the control software, but hopefully that is helpful feedback!?

    • Ok, I tried
      – gupnp-av-cp : this indeed seems to have problems, but it seems that this is not with the gmediarender per-se, at least I didn’t get to the point sending stuff to the gmrender: When browsing the server, it sends strange commands back to the server (My Minim-server complains about ‘MinimServer: 0$Composer$30$3$0 isn’t a valid container’.) This is why you can’t really select a piece of music and press ‘Play’. If you press ‘Pause’, you get the ‘Transition not allowed’ error because ‘Pause’ while being stopped doesn’t make sense. I’ll try more, but it looks right now as a bug in gupnp; will try another media server to see if it is a particular problem in this combination.

      – Leia attempts to use a function PrepareForConnection() that the standard only suggests as optional. I’ve now added a dummy-implementation of this function (please try again). I tried to use the leiads binary package on my ubuntu, and it gets beyond the ‘complain about PrepareForConnection’ point, but it crashes afterwards. The sources don’t seem to compile on a current Ubuntu 12.04. YMMV.

      – eezupnp was sending no meta data for the transport URI sometimes which made gmrender go into an undefined state, this might be what you’ve observed (in my case it just crashed). Fixed. EezUPnP now works well for, plays as well subsequent songs (and it even uses the gapless support in gmrender). Please try again.

      • welf says:

        Thanks for your work on this!

        I tried eezupnp again but it still doesn’t seem to work survive past the end of a track. It still seems to keep counting up past the length.

        Leia seems to be working well for me now under Ubuntu (using the binary package). I’d like to also be able to run it on the Raspberry Pi, but there is no binary for it and as you say it doesn’t seem to compile from source 😦

      • Henner Zeller says:

        > tried eezupnp again but it still doesn’t seem to work survive past the end
        > of a track. It still seems to keep counting up past the length.

        mmh, even with the latest version in git ? What is the media server you are using, maybe I have to try to use that combination to see what is going wrong.

        FWIW, I am using a controller running on my smart phone (in my case BubbleUPnP, but there are many UPnP/DLNA controllers out there) which works great. Also a great ‘remote control feeling’ 🙂

      • welf says:

        My server is running mediatomb and I’m pretty sure it’s the most recent version from git that I pulled. It’s not a big deal though as Leia seems to be working well for me.

      • Henner Zeller says:

        Ok. For me it is only important to see if there is something broken in gmediarender or if it is the controller. I want to have the render as standard conformant as possible.

        But glad that it works with Leia at least. Spread the word 🙂

  16. Keith says:

    Seems to work very well with air music. I am streaming WXRT AAC stream and it is working nicely. Pause, play, stop. I did notice that Air Music can stop and it will not stop the playback, but that UPnPlay will stop playback when the app is closed. I am guessing that Air Music is not as ‘full featured’.

    The only bit missing that I have found so far is the clicking/popping when a stream is selected or stopped. I am guessing this has to do with Pulse/ALSA and not gmrender. THis is a great app and will cause me to buy another rpi!

  17. Keith says:

    oh, the stream I am listening to is “”

  18. Keith says:

    Can the music ‘now playing’ info be extracted from this stream and displayed on the app screen?

    • Henner Zeller says:

      The ‘now playing’ information can be seen if the controller sets the AVTransportURIMetaData (the stream is on AVTransportURI). If you connect with another app to the same gmrender instance, it will pass on the meta info on request – so ‘now playing’ should show that information (and this is fully supported by gmrender).

  19. Keith says:

    Awesome! Which media players support streaming to a rendering device? The only one I have found is the Air Music (DK Player) and BubbleUPnP. If there is another one which is more ‘full featured’, I would be willing to buy it now that this works… The ones I have tried are: UPnPlay, 2Player, AndroMote, DLNAPlayer, EminentDLNA. The only 2 that I have been able to figure out how to make stream are Air Music and BubbleUPnP and neither show the current playing information.

    • Henner Zeller says:

      I found the BubbleUPnP developer very responsive. Maybe it is on his todo-list ? I assume this as well depends on how (and if!) streaming services provide this information about their stream. Maybe there is even something possible the renderer can do, if there are in-stream tags embedded – I’ll have to check out more in detail how these streaming services work; I’ll put it on my TODO list for the renderer side.

    • Ok, looks like I actually can get the current title from the stream. My current attempts to tell the controller app don’t work in all cases, I am trying to find out why. Stay tuned, I probably can submit something this week.

    • Henner Zeller says:

      So I implemented the ‘pushing the changed song-type’ to the client, you can see that this is happening in the log-output of the current gmediarender.

      However, I found that none of the players I tested seems to be prepared to get an update of the meta data. I’ll check with some of these implementers to see if they can add the support or if this is supposed to work differently.

  20. Keith says:

    Thanks Henner! Great app.

  21. Darryl says:

    Thank you all so much, for the initial description and for the fix to gmrender. Also thanks for the pulseaudio tip. I wonder what pulseaudio is doing differently than the gstreamer alsa plugin.

    I’m actually thinking of getting a raspberry pi for every room now, as a sound system in our new house. Need to find suitable stereo speakers and evaluate sound quality before committing.

    • Henner Zeller says:

      Probably pulseaudio does better buffering.

      In addition to use pulseaudio, I found that on my small device setting
      ulimit -HS -r 99 -e 30
      (when in bash)
      before starting gmediarender allows pulseaudio to put itself into a higher process priority – thus avoiding dropouts if there is some other high CPU activity going on (if so configured in /etc/pulse/daemon.conf, but AFAIK, this is the default).

  22. Keith says:

    Something is acting weird. It seems when I play a stream, stop it and come back later, the pi will hang just as the stream starts. I start the remote program (air player), I select raspberry pi as the renderer, I select a stream, it goes click then is completely hung. I have to unplug/replug to restart. It will not respond to ssh or keyboard….

  23. Keith says:

    Upon reboot, I get the clicky-poppy audio. Restarted gmrender and pulse and it is better. I just did a git pull and recompiled. Shall see if it is better upon hanging the pi.

  24. Malte says:

    Hello Keith, I had the same problem as you have (if you haven’t fixed it by now). It seems to be related to gmediarender being started as root, as the /etc/init.d-script posted above those. It is better to use start-stop-daemon anyway, so just try to replace /etc/init.d/gmediarender with the following (assuming you want to run it as user pi, if not replace the -c argument of start-stop-daemon):

    # Provides: gmediarender
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start GMediaRender at boot time
    # Description: Start GMediaRender at boot time.
    #! /bin/sh
    # /etc/init.d/gmediarender
    export USER HOME
    case “$1” in
    echo “Starting GMediaRender”
    start-stop-daemon -x /usr/local/bin/gmediarender -c pi:audio -S — -f “GMediaRender (Raspberry Pi)” -d
    echo “Stopping GMediaRender”
    start-stop-daemon -x /usr/local/bin/gmediarender -K
    echo “Usage: /etc/init.d/gmediarender {start|stop}”
    exit 1
    exit 0


  25. Malte says:

    Whoops, the — in the script is supposed to be a double dash, i.e., – – without the space

  26. keithy says:

    Great work – thanks

    I followed the original gmediarender install instructions and have that up and running (as well as it is able)

    I’d now like to try Henners tweaked version

    Could someone post an idiots guide of how I update to Henners version from github?

    Thank you

  27. […] use gstreamer as a backend I need to fix the audio quality issues. A bit more googling revealed a post from someone doing much the same as me. One of Chris Baume’s commenters also had problems with the audio qut.ality and suggested […]

  28. […] standard stuff here (copied from Malte’s post in Chris’ blog). Create a file /etc/init.d/gmediarenderer with the following […]

  29. Christian says:

    Great, got it working after a few hours of refreshing my lost linux knowledge, thank you very much!

  30. imu says:

    what about : sudo leafpad /etc/xdg/lxsession/LXDE/autostart and placing the following line : @gmediarender -f “Raspberry Pi” over there, will it work ?

  31. Isnt it snd-bcm2835 you have to load to /etc/modules?

  32. Lépicier says:

    Hi, I did exactly what you explain and I thank You.
    I get a problem when I launch Bubble on my tab, trying to connect Pi.
    Errno 501.
    Can you help me ?

    • Lépicier says:

      I forgot to explain that Bubble asks me the IP , the port, the login and password of PI. I put the IP, the login ‘pi’, the passord of pi; but what about the port ?

      • The BubbleUPnP app never asks for the IP, login etc. of the Pi. It will just discover the renderer. Are we talking about a different app here ?

  33. Lépicier says:

    I explain:
    I launch a movie on my tab Nexus. It asks me how to play movie. I answer: with BubbleUpnp.
    So BubbleUpnp is launched, and I see “Raspberry PI”.
    But I don’t see anything on TV and the movie is paused. When i click on “play”, I get this error on BubbleUpnp: “Errno 501”
    What does it mean ?

  34. Lépicier says:

    I got this error (translated)

    playsink2: Error: autovideosink element does not word :-(.

  35. Lépicier says:

    Okay I’ll look at this.
    I try first an other sofware : XBMC, here: http://www.raspbian.org/RaspbianXBMC

    Thank’s a lot

  36. Adrian says:

    A very useful post for integration of media player and other original functions of Raspbian!

    However there is a problem of Lumia 920 Play To. I was using RaspBMC image and it works pretty good to play music continually and play movie without any problem via Play To. Once I switch to Raspbian image and setting up uPnP by following steps in your post, a problem jump out, that is Play To music do NOT stream even when I see there is successful output on Raspbian. Simply solved by switching off sharing on music play screen and turn on again, then sounds steamed to Raspbian. But I have to repeat this when Play To play next music. Unknown reason!

    Hope I can here from someone the same issue and the solution. Anyway I am trying to dig it out and will post here once done.

  37. it works great so far! I followed the last comment on ubuntu 14.04 here: http://askubuntu.com/questions/187086/how-do-i-set-up-live-audio-streams-to-a-dlna-compliant-device to use your gmrender as a replacement of the not-working pulseaudio sink.

    I do have a question though: how can I set a default streamer for gmrederer to render? right now I always have to start bubbleupnp on the phone to select my laptop as the stream and my pi as the renderer. it works fine, I just want to set a default so I can skip bubbleupnp unless i want to change something.


    • Keith says:


      As far as I am concerned,m that should be a built in feature of PulseAudio: select a DLNA/UPnP renderer to send an audio stream to. I was surprised when I started looking for this a few months ago and the kluges which exist to do this. Integrating DLNA/UPnP into PulseAudio is a problem looking for a solution, IMO.

      As part of this experimentation, I was able to have a computer send its pulse output to another computer’ pulse subsystem after I had edited the configuration file. This was not ‘user friendly’ nor was it easy for me to figure out how to turn it off once I set it up…


  38. Aron says:

    A systemd compatible solution:

    $ cat /etc/systemd/system/gmediarender.service

    ExecStart=/usr/local/bin/gmediarender -f “RaspberryPi” -d
    ExecStop=killall gmediarender


    $ sudo systemctl enable gmediarender.service
    Synchronizing state for gmediarender.service with sysvinit using update-rc.d…
    Executing /usr/sbin/update-rc.d gmediarender defaults
    Executing /usr/sbin/update-rc.d gmediarender enable

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: