This is pulseaudio-dlna. A small DLNA server which brings DLNA / UPNP support to PulseAudio.
It can stream your current PulseAudio playback to different UPNP devices (UPNP Media Renderers) in your network. It's main goals are: easy to use, no configuration hassle, no big dependencies.
pulseaudio-dlna is licensed under GPLv3.
pulseaudio-dlna is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
pulseaudio-dlna is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with pulseaudio-dlna. If not, see <http://www.gnu.org/licenses/>.
There is no special installation required. Just clone this git repository, make sure you have all the dependencies installed and the PulseAudio DBus module is loaded.
- python-dbus
- python-beautifulsoup
- python-docopt
- vorbis-tools
- sox
- lame
- flac
You can install all the dependencies in Ubuntu via:
sudo apt-get install python-dbus python-beautifulsoup python-docopt vorbis-tools sox lame flac
You can do that via:
pacmd load-module module-dbus-protocol
Or to make changes persistant edit the file /etc/pulse/default.pa
with your
favorite editor and append the following line:
load-module module-dbus-protocol
After that, you can start pulseaudio-dlna via:
./pulseaudio_dlna.py --host <your-ip>
It should start searching for UPNP devices in your LAN and add new PulseAudio
sinks.
After that you can switch your playback streams via pavucontrol
to be played
to a UPNP device.
You can install pavucontrol
in Ubuntu via the following command:
sudo apt-get install pavucontrol
Note that pulseaudio-dlna has to run all the time while you are listening to your music. If you stop pulseaudio-dlna it will cleanly remove the created UPNP devices from PulseAudio and your UPNP devices will stop playing.
Also note that pulseaudio-dlna won't search for additional UPNP devices after startup. It just does this once and (for me) there is no need in continuously doing that. So if you added a new UPNP device to your network, restart pulseaudio-dlna.
Usage:
pulseaudio_dlna.py --host <host> [--port <port>] [--encoder <encoder>]
pulseaudio_dlna.py [-h | --help | --version]
Options:
--host=<host> set the server ip.
-p --port=<port> set the server port [default: 8080].
-e --encoder=<encoder> set the server port [default: lame].
encoders are:
- lame MPEG Audio Layer III (MP3)
- ogg Ogg Vorbis
- flac Free Lossless Audio Codec (FLAC)
- wav Waveform Audio File Format (WAV)
-v --version show the version.
-h --help show the help.
--debug enable debugging.
Samples:
pulseaudio_dlna.py --host 192.168.1.2 --encoder ogg
will start pulseaudio_dlna.py on port 8080 and stream your PulseAudio streams encoded with Ogg Vorbis.pulseaudio_dlna.py --host 192.168.1.2 --port 10291 --encoder lame
will start pulseaudio_dlna.py on port 10291 and stream your PulseAudio streams encoded with Ogg Vorbis.
pulseaudio-dlna was successfully tested on the follwing devices / applications:
- D-Link DCH-M225/E
- Cocy UNPNP media render (https://github.com/mnlipp/CoCy)
- BubbleUPnP (Android App)
pulseaudio-dlna supports the follwing encoders:
- lame MPEG Audio Layer III (MP3)
- ogg Ogg Vorbis
- flac Free Lossless Audio Codec (FLAC)
- wav Waveform Audio File Format (WAV)