Forward pulseaudio streams to DLNA devices.
Project description
pa-dlna forwards audio streams to DLNA devices.
A Python project based on asyncio, that uses ctypes to interface with the libpulse library [1] and supports the PulseAudio and PipeWire [2] sound servers.
pa-dlna is composed of the following components:
The pa-dlna program forwards PulseAudio streams to DLNA devices.
The upnp-cmd is an interactive command line tool for introspection and control of UPnP devices [3].
The UPnP Python package is used by both commands.
The pulselib Python package is a ctypes interface to the libpulse library.
See the pa-dlna documentation.
Installation
Install pa-dlna with pip:
$ python -m pip install pa-dlna
Requirements
Python version 3.8 or more recent.
The built-in UPnP package and therefore the upnp-cmd and pa-dlna commands depend on the psutil Python package. No other dependency is required by pa-dlna when the DLNA devices support raw PCM L16 (RFC 2586) [4].
Optionally, encoders compatible with the audio mime types supported by the devices may be used. pa-dlna currently supports the ffmpeg (mp3, wav, aiff, flac, opus, vorbis, aac), the flac and the lame (mp3) encoders. The list of supported encoders, whether they are available on this host and their options, is printed by the command that prints the default configuration:
$ pa-dlna --dump-default
Optionally, one may install the pavucontrol package for easier management of associations between sound sources and DLNA devices.
Configuration
A pa-dlna.conf user configuration file overriding the default configuration may be used to:
Change the preferred encoders ordered list used to select an encoder.
Configure encoder options.
Set an encoder for a given device and configure the options for this device.
Configure the sample_format, rate and channels parameters of the parec program used to forward PulseAudio streams, for a specific device, for an encoder type or for all devices.
See the configuration section of the pa-dlna documentation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.