Mithilfe von PulseAudio-DLNA leiten Sie den Sound Ihres Rechners über das Netzwerk auf die Stereoanlage oder den Fernseher. Die aktuelle Version des Programms unterstützt sogar Googles Chromecast-Dongle.
PulseAudio muss sich immer wieder harscher Kritik erwehren – gelegentlich zu Recht, doch oft auch zu Unrecht, da sich mithilfe des flexiblen Soundservers interessante Dingen realisieren lassen. So regeln Sie damit etwa gezielt die Lautstärke einzelner Anwendungen oder leiten den Sound auf einen anderen Rechner um, an dessen Audio-Ausgang ordentliche Boxen hängen.
Hier kommt DLNA ins Spiel. Das Protokoll mit dem unaussprechlichen Namen ermöglicht ein Streaming von Multimediadaten über das Netzwerk. Besitzen Sie einen DLNA-fähigen AV-Receiver oder andere Geräte mit entsprechender Unterstützung, wie etwa einen Heimkino-PC oder einen Raspberry Pi mit Kodi, dann gelingt das Streaming dank PulseAudio-DLNA [1] kinderleicht: Der sich in PulseAudio einklinkende DLNA-Server unterstützt in aktuellen Versionen zudem Googles Chromecast-Dongle und (zumindest in der Theorie) Sonos-Boxen.
PulseAudio und DLNA
Der Entwickler des Programms, Massimo Mund, stellt für die Installation von PulseAudio-DLNA ein Ubuntu-PPA für Systeme ab 14.04 LTS (“Trusty Tahr”) mit der jeweils aktuellen Version zur Verfügung [2]. Listing 1 zeigt die Befehle zur Integration des PPAs und Installation des Programms. Auch für OpenSuse und Fedora gibt es Pakete [3]; Anwender von Arch Linux finden das Programm im AUR [4]. Damit sich PulseAudio-DLNA auch mit Googles Chromecast (Abbildung 1) versteht, müssen Sie mindestens die Version 0.4.0 einspielen. Die Hinweise in diesem Artikel beziehen sich auf PulseAudio-DLNA 0.4.4 von Anfang August 2015.
Listing 1
$ sudo apt-add-repository ppa:qos/pulseaudio-dlna $ sudo apt-get update $ sudo apt-get install pulseaudio-dlna pavucontrol

Abbildung 1: PulseAudio-DLNA unterstützt DLNA-fähige Empfänger wie moderne Fernseher und AV-Receiver sowie aber auch Googles Chromecast-Dongle.
Nach der Installation starten Sie PulseAudio-DLNA aus einem Terminal und rufen den in der letzten Zeile von Listing 1 gleich mit installierten PulseAudio-Lautstärkeregler pavucontrol auf. Im Terminal erscheinen nun eine Reihe von Informationen, von denen insbesondere die Zeilen mit Added the device Gerät interessieren (Listing 2): Ihnen können Sie entnehmen, ob und welche DLNA-Geräte PulseAudio-DLNA im Netz findet. In unserem Test funktionierte das mit einem LG-Fernseher, einem Raspberry Pi mit Kodi in Form von OpenELEC sowie mit der Audioserver-Distribution Volumio [5] und einem Chromecast ohne Probleme.
Listing 2
$ pulseaudio-dlna 08-01 13:23:36 pulseaudio_dlna.application INFO Using localhost: 192.168.178.49:8080 08-01 13:23:36 pulseaudio_dlna.application INFO Loaded encoders: 08-01 13:23:36 pulseaudio_dlna.application INFO [...] 08-01 13:23:38 pulseaudio_dlna.pulseaudio INFO Added the device "42LS560S-ZC (DLNA)". 08-01 13:23:38 pulseaudio_dlna.plugins.chromecast.renderer INFO The Chromecast seems not to be an original Chromecast! Model name: "FireTV" Skipping device ... 08-01 13:23:38 pulseaudio_dlna.plugins.chromecast.renderer INFO The Chromecast seems not to be an original Chromecast! Model name: "FireTV" Skipping device ... 08-01 13:23:38 pulseaudio_dlna.pulseaudio INFO Added the device "Wohnzimmer (Chromecast)". 08-01 13:23:43 pulseaudio_dlna.listener INFO Discovery complete. [...]
PulseAudio-DLNA erkennt auch den Amazon Fire TV, übergeht ihn allerdings mit der Nachricht The Chromecast seems not to be an original Chromecast!. Die Version 0.3.5 des Programms erkannte zudem noch Sonos-Boxen – sie blieben jedoch stumm, wenn wir sie mit Sound beschickten. PulseAudio-DLNA 0.4.4 listet die im Netz aktiven Sonos-Geräte gar nicht mehr auf, auch wenn die Beschreibung Sonos-Boxen noch als kompatible Geräte führt (siehe Kasten “Sonos-Boxen”).
Schlägt der Start von PulseAudio-DLNA fehl, weil schon andere Anwendungen auf Port 1900 lauschen, schalten Sie SSDP mit der Option --disable-ssdp-listener ab (Listing 3). Bei Gnome sucht beispielsweise Gnome-Fotos mithilfe von dLeyna [6] im Netzwerk selbstständig nach DLNA-Servern mit Bildern. Gelegentlich belegt PulseAudio aber auch selbst bereits den Port für den Versand und Empfang von Multicast/RTP (Abbildung 2). Das prüfen Sie bei Bedarf in den PulseAudio-Einstellungen nach (bei den meisten Distributionen über das Paket paprefs installierbar).
Listing 3
$ pulseaudio-dlna [...] 08-10 14:04:39 pulseaudio_dlna.application ERROR The SSDP listener could not bind to the port 1900/UDP. Perhaps this is already in use? Application terminates. You can disable this feature with the "--disable-ssdp-listener" flag. $ sudo netstat -tunlp | grep 1900 udp 0 0 239.255.255.250:1900 0.0.0.0:* 6358/dleyna-rendere udp 0 0 192.168.111.192:1900 0.0.0.0:* 6358/dleyna-rendere udp 0 0 239.255.255.250:1900 0.0.0.0:* 6358/dleyna-rendere udp 0 0 127.0.0.1:1900 0.0.0.0:* 6358/dleyna-rendere $ pulseaudio-dlna --disable-ssdp-listener

Abbildung 2: Fungiert PulseAudio als Empfänger und Sender für Multicast/RTP, belegt der Soundserver den von PulseAudio-DLNA angeforderten Port 1900.
Sonos-Boxen
Auch wenn Sonos auf seiner Homepage behauptet, nicht kompatibel zu DLNA-Streams zu sein [8], fungieren die Sonos-Boxen inoffiziell durchaus als DLNA-Empfänger. Die zum Zeitpunkt dieses Artikels noch unveröffentlichte Version 0.4.5 von PulseAudio-DLNA findet Sonos-Boxen im Netz [9] und bietet diese innerhalb von PulseAudio als Audiosenke an. Das System unterstützt allerdings in diesem Fall nur Streams zu einzelnen Boxen des Multiroom-Audio-Systems, nicht auf Gruppen aus mehreren Sonos-Geräten.
Damit der Sound ohne Störungen aus den Sonos-Boxen kommt, streamen Sie die Audio-Daten im WAV-Format. Starten Sie dazu PulseAudio-DLNA mit der Option --encoder wav. Hört sich der Ton aus den Sonos-Boxen auch dann noch zerhackstückelt an, dann stellen Sie in der PulseAudio-Lautstärkeregelung die Lautstärke des entsprechenden Streams auf 100 Prozent und ruckeln ein wenig am Lautstärkeregler. Nach einer kurzen Einlaufphase kommt dann der vom Rechner gestreamte Sound klar und sauber aus den Sonos-Boxen.
Sound weiterleiten
Für einen ersten Test öffnen Sie nun eine beliebige Anwendung, die Ton abspielt, und wechseln zum PulseAudio-Lautstärkeregler. Dort wählen Sie im Reiter Wiedergabe das entsprechende Programm und suchen im Ausklappmenü dasjenige Gerät heraus, an das PulseAudio-DLNA den Ton weiterleiten soll (Abbildung 3). Kurze Zeit später wartet das entsprechende Device mit Tönen auf – das Terminalfenster mit PulseAudio-DLNA müssen Sie dabei geöffnet lassen.

Abbildung 3: Mit dem PulseAudio-Lautstärkeregler leiten Sie bei laufendem PulseAudio-DLNA den Sound der gewünschten Anwendung zu den gefundenen DLNA-Geräten weiter.
Schalten Sie das gewählte Audiogerät ab, wechselt PulseAudio-DLNA automatisch auf internes Audio zurück. Der Soundserver merkt sich die Kombination aus Programm und Ziel: Solange Sie PulseAudio-DLNA nicht beenden, spielt er den Ton der ausgewählten Anwendung automatisch über das DLNA-Gerät ab, selbst wenn Sie dieses zwischendurch neu starten. Zur Kontrolle des Prozesses werfen Sie einen Blick in das Terminal mit dem Aufruf von PulseAudio-DLNA: Hier meldet das Programm den Stream und liefert bei Fehlern weiterführende Informationen, die Sie an den Entwickler melden können (Listing 4).
Listing 4
[...] 08-01 13:24:12 pulseaudio_dlna.streamserver INFO Requested streaming URL was: /wohnzimmer_chromecast.wav (HTTP/1.1) 08-01 13:24:12 pulseaudio_dlna.streamserver INFO Got request from Chromecast.fritz.box - GET /wohnzimmer_chromecast.wav HTTP/1.1,200,- 08-01 13:24:12 pulseaudio_dlna.streamserver INFO Client 192.168.178.54 registered to stream /wohnzimmer_chromecast.wav. 08-01 13:24:12 pulseaudio_dlna.streamserver INFO Processes of /wohnzimmer_chromecast.wav initialized ... sox WARN wav: Length in output .wav header will be wrong since can't seek to fix it 08-01 13:24:13 pulseaudio_dlna.pulseaudio INFO The device "Wohnzimmer (Chromecast)" is playing.
Fazit
PulseAudio-DLNA funktioniert, eignet sich allerdings nicht für jede Aufgabe. Da sich beim Abspielen über das Netzwerk aufgrund des Puffers eine Verzögerung von rund einer halben Sekunde oder etwas mehr einstellt [7], beschränkt sich das Einsatzgebiet in der Praxis auf das Streamen von Musik oder anderer reiner Audiomedien auf eine DLNA-fähige Stereoanlage oder einen AV-Receiver. Versuchen Sie, den Sound eines Films oder Computerspiels drahtlos per DLNA auf die Stereoanlage zu beamen, müssen Sie sich damit abfinden, dass Ton und Bild nicht mehr exakt aufeinanderpassen.
Abhilfe schaffen hier leistungsfähige Videoplayer wie zum Beispiel VLC: Er bietet unter Werkzeuge | Spursynchronisierung | Audiospur-Synchronisation die Option, den Ton gegenüber dem Video beschleunigt abzuspielen (Abbildung 4). So passen dann Bild und Ton trotz der durch das Streaming entstandenen Verzögerung wieder zusammen. Diese Funktion finden Sie allerdings nur in den wenigsten Mediaplayern und erst recht nicht in gängigen Computerspielen.

Abbildung 4: Der VLC-Medienplayer verzögert oder beschleunigt auf Wunsch den Ton des Videos gegenüber dem Bild. So gleichen Sie die durch das Streaming bedingte Verzögerung aus.
Glossar
-
SSDP
-
Simple Service Discovery Protocol. Das von Microsoft mit Windows ME eingeführte Netzwerkprotokoll dient der Suche nach UPnP-Geräten. Bei SSDP-Paketen handelt es sich um über Port 1900/UDP verschickte HTTP-Requests.
-
RTP
-
Das Real-Time Transport Protocol (RFC 3550) dient der kontinuierlichen Übertragung von AV-Streams in Netzwerken.
Infos
[1] PulseAudio-DLNA: https://github.com/masmu/pulseaudio-dlna
[2] PPA-Paketquelle: https://launchpad.net/~qos/+archive/ubuntu/pulseaudio-dlna
[3] Installationshinweise: https://github.com/masmu/pulseaudio-dlna#installation-for-other-distributions
[4] PulseAudio-DLNA im AUR: https://aur.archlinux.org/packages/pulseaudio-dlna/
[5] Volumio: https://volumio.org
[6] dLeyna: https://01.org/dleyna
[7] “Sound lag”: https://github.com/masmu/pulseaudio-dlna/issues/15
[8] Sonos und DLNA-Mediaserver: http://sonos-de.custhelp.com/app/answers/detail/a_id/2226/~/sonos-und-dlna-medienserver
[9] PulseAudio-DLNA und Sonos-Geräte: https://github.com/masmu/pulseaudio-dlna/issues/67





