avrabe / pulseaudio-dlna

A small DLNA server which brings DLNA / UPNP support to PulseAudio.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

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.

Image of pulseaudio-dlna

License

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/>.

Installation

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.

Requirements

  • 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

PulseAudio DBus module

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

Starting

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.

CLI

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.

Tested devices

pulseaudio-dlna was successfully tested on the follwing devices / applications:

Supported encoders

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)

About

A small DLNA server which brings DLNA / UPNP support to PulseAudio.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%