Ubuntu – How to set up live audio streams to a DLNA compliant device


Is there a way to stream the live output of the soundcard from our 12.04.1 LTS amd64 desktop to a DLNA-compliant external device in our network? Selecting media content in shared directories using Rygel, miniDLNA, and uShare is always fine – but so far we completely failed to get a live audio stream to a client via DLNA.

Pulseaudio claims to have a DLNA/UPnP media server that together with Rygel is supposed to do just this. But we were unable to get it running.

We followed the steps outlined in live.gnome.org, this answer here, and also in another similar guide.

In 12.04 LTS we can select the local audio device, or our GST-Launch stream in the DLNA client but Rygel displays the following message and the client states it reached the end of the playlist:

(rygel:7380): Rygel-WARNING **: rygel-http-request.vala:97: Invalid seek request

There was no way to listen to live audio streams on the client.

Only after a distribution upgrade to 14.04 LTS we were able to select a live stream on our DLNA renderers from settings nicely outlined in below answer. Still, we needed to select an established stream after we started rygel and were unable to push a new stream to our UPnP devices. Audio metadata were not transmitted.

Are there any other alternatives for sending the audio of our soundcard as live stream to a DLNA client?

Best Answer


I created a little server which discovers all upnp renderers in your network and adds them as sinks to pulseaudio. So you can control every application via pavucontrol to play on your upnp devices.

That's the kind of comfort I always wanted when dealing with upnp devices under linux.

The application can be installed from source or DEB package downloadable from git, or after we had added the project's official ppa:qos/pulseaudio-dlna to our sources with:

sudo apt-get update && sudo apt-get install pulseaudio-dlna

We then run pulseaudio-dlna from the command line with following options:

pulseaudio-dlna [--host <host>] [--port <port>] [--encoder <encoder>] [--renderer-urls <urls>] [--debug]
pulseaudio-dlna [-h | --help | --version]

See also the pulseaudio-dlna "About" for more.

When there was a DLNA renderer present we can then select it from the sound menu as an output sink:

enter image description here

Related Question