[[Vorlage(Getestet, resolute)]] {{{#!vorlage Wissen [:Pipewire:] [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [gitlab:xdegaye/pa-dlna:pa-dlna] {en} leitet die Audioausgabe von Pipewire[1] ähnlich wie [:pulseaudio-dlna:] mit [:PulseAudio:] ins lokale Netzwerk (LAN) / auf DLNA Devices um. Wichtig zum Verständnis ist außerdem, dass es sich nicht um einen vollwertigen [:Musik_verwalten#DLNA-Server:DLNA-Server] handelt. = Installation = == Voraussetzungen == Das Programm benötigt Pipewire[1] als Pulseaudio Sound Server, d.h.: 1. Die Programme pipewire, pipewire-pulse und wireplumber müssen installiert sein und laufen. Dies kann man mit diesem Befehl überprüfen: [[Vorlage( Befehl, "pgrep -a wire" ) ]] Bei einem wie vorgesehen installiertem aktuellem Ubuntu-Desktop ist dies der Fall. 1. Pulseaudio darf nicht als Vorgabe im System definiert sein. In der Ausgabe von [[Vorlage( Befehl, "grep default-server /etc/pulse/client.conf" ) ]] darf der Wert __nicht__ `pulseaudio` lauten. == Paketquellen == Erst ab [:Oracular Oriole:] 24.10 befindet sich das Paket '''[packages:pa-dlna:]''' {en} in den offiziellen Paketquellen und kann direkt aus diesen installiert[2] werden: {{{#!vorlage Paketinstallation pa-dlna, universe ab 24.10 – PulseAudio-Ströme an DLNA-Geräte weiterleiten }}} == Python-Modul == Nachfolgend wird die Installation unter [:Noble Numbat:] (24.04) mit python3 und pipx beschrieben. Als Voraussetzungen benötigt man Python Version 3.8 oder aktueller und den Paket-Manager von Python: {{{#!vorlage Paketinstallation pipx, universe }}} Zur Installation des Programms benutzt man danach diesen Befehl: {{{#!vorlage Befehl python3 -m pipx install pa-dlna }}} Das Programm kann dann sofort gestartet werden[3]. = Verwendung = Die praktische Nutzung erfolgt mit den folgenden Schritten: [[Vorlage(Bildunterschrift,./pa-dlna_pavucontrol_indiziert.png, 400, "DLNA-Client auswählen", right,)]] 1. pa-dlna wird innerhalb der eigenen Desktop-Umgebung in einem Terminal gestartet[4]: {{{#!vorlage Befehl pa-dlna }}} 1. Dann startet man die Audiowiedergabe über einen beliebigen [:AudioPlayer:Audioplayer], der aber die Ausgabe via Pipewire unterstützen muss. 1. Auf Empfängerseite kann nun eine Hardware-Komponente zur Wiedergabe genutzt werden. 1. Nun kann auf dem Rechner mit [:pavucontrol:] die Ausgabe auf den Client aktiviert werden. Statt des standardmäßig voreingestellten internen Audio-Geräts wählt man den jeweiligen DLNA-Client aus (siehe Abbildung). 1. Beendet wird die Umleitung der Audioausgabe im Terminal mit der Tastenkombination [[Vorlage(Tasten, strg+c)]]. Pipewire schaltet automatisch auf das Standardgerät zur Audiowiedergabe zurück. = Optionen = Beim Start des Programms kann man Optionen gemäß folgender Tabelle verwenden. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> Optionen (Auswahl) +++ Parameter Beschreibung +++ `-h, --help` Hilfe anzeigen +++ `--version, -v` Version anzeigen +++ `--ip-addresses IP_ADDRESSES, -a IP_ADDRESSES` IP_ADDRESSES ist eine durch Kommas getrennte Liste der lokalen IPv4-Adressen der Netzwerke, in denen UPnP-Geräte gefunden werden können. }}} = Konfiguration = Die Konfigurationsdatei kann unter nachfolgenden Verzeichnis bearbeitet werden: '''$HOME/.config/pa-dlna/pa-dlna.conf'''. Beispiel für eine angepasste Konfigurationstatei '''pa-dlna.conf''': {{{ # The pa-dlna default configuration. # # This is the built-in pa-dlna configuration written as text. It can be # parsed by a Python Configuration parser and consists of sections, each led # by a [section] header, followed by option/value entries separated by # '='. See https://docs.python.org/3/library/configparser.html. # # The 'selection' option is written as a multi-line in which case all the # lines after the first line start with a white space. # # The default value of 'selection' lists the encoders in this order: # - mp3 encoders first as mp3 is the most common encoding # - lossless encoders # - then lossy encoders # See https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio. [DEFAULT] # Nur FLAC, damit pa-dlna nie auf L16/WAV fällt selection = FlacEncoder, FFMpegFlacEncoder # Musik-Standard rate = 44100 channels = 2 # Stabilität: SOAP/Session-Neuverhandlung pro Track track_metadata = yes soap_minimum_interval = 5 # Denon explizit (deine UDN) # [FFMpegL16WavEncoder.uuid:0ac14c92-3746-13e7-0080-0005cdcd4c36] [FlacEncoder.uuid:0ac14c92-3746-13e7-0080-0005cdcd4c36] rate = 44100 channels = 2 track_metadata = yes soap_minimum_interval = 5 }}} = Latenzzeit = Bei der Umleitung der Audioausgabe von Videos kommt es prinzipbedingt zu Verzögerungen, die durch Latenzen im Netzwerk begründet sind: Bild und Ton sind nicht mehr synchron. Bei der Nutzung eines reinen Audioplayers ist dieses Problem nicht relevant. = Links = * [gitlab:xdegaye/pa-dlna:pa-dlna Projektseite] {en} * [https://pa-dlna.readthedocs.io/en/stable/ Dokumentation] {en} * [https://pypi.org/project/pa-dlna/ Python Package Index] {en} * [https://launchpad.net/ubuntu/+source/pa-dlna pa-dlna package in Ubuntu] {en} #tag: Netzwerk, Multimedia, Streaming, DLNA,