Über PulseAudio wird ja gerne geschimpft, aber mithilfe des flexiblen Soundserver lassen sich in meinen Augen eine Reihe von interessanten Dingen realisieren. So könnt ihr beispielsweise die Lautstärke jeder Anwendung getrennt voneinander regeln oder den Sound vom Notebook über das WLAN an einen Desktop-Rechner leiten, der an ordentliche Boxen angeschlossen ist. Besitzt ihr einen DLNA-fähigen AV-Receiver oder einen Fernseher mit Chromecast-Dongle, dann könnt ihr mittels PulseAudio-DLNA den Sound eures Rechners auch ohne einen extra Rechner auf eure Boxen leiten.

PulseAudio-DLNA ist ein kleiner DLNA-Server, der die in eurem Netzwerk nach Digital Media Rendereren (DMR) sucht und diese automatisch als PulseAudio-Senke dem System zur Verfügung stellt. So könnt ihr dann den Sound einzelner Apps oder den des gesamten Desktops an euren DLNA-fähigen Verstärker, einen Fernseher, einen Raspberry Pi mit Kodi oder seit der Version 0.4.0 des Programms auch einen Chromecast-Dongle senden. Inzwischen steht die Version des Programms bei 0.4.3, die eine Reihe von Verbesserungen mit sich bringt.

Die Entwickler stellen Ubuntu-Usern eine PPA-Paketquelle mit der jeweils aktuellen Version zur Verfügung. Anwender mit Arch Linux finden das Programm im AUR (bedenkt bitte, dass aktuell auf das AUR4 umgestellt wird), allerdings hinkt das PKGBUILD derzeit hinterher und wurde vom Paketbetreuer trotz gesetzem „outdated“-Flag bisher nicht aktualisiert. In den Kommentaren des AUR4-Eintrags habe ich eine überarbeitete Version der PKGBUILD-Datei hinterlegt, mit der sich die aktuelle Version (gerade frisch eingetroffen die Version 0.4.3) bauen lässt.

### PulseAudio-DLNA unter Ubuntu 15.04 und 14.04 LTS installieren
$ sudo apt-add-repository ppa:qos/pulseaudio-dlna
$ sudo apt-get update
$ sudo apt-get install pulseaudio-dlna pavucontrol

Nach der Installation müsst ihr PulseAudio-DLNA aus einem Terminal heraus starten und den PulseAudio Lautstärkeregler pavucontrol aufrufen — Die Installation dessen habe ich oben in die Code-Box mit eingeschmuggelt. Im Terminal erscheinen nun eine Reihe von Informationen, wichtig sind die Zeilen mit „Added the device „Gerätename“. Diese sagen euch, ob und welche DLNA-Geräte PulseAudio-DLNA in eurem Netz findet. Bei mir klappt das mit einem LG-Fernseher, Kodi und einem Chromecast ohne Probleme. PulseAudio-DLNA findet 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 hat auch noch Sonos-Boxen erkannt, allerdings blieben diese stumm, wenn man Sound auf sie schickte, von daher klammert PulseAudio-DLNA diese wohl inzwischen komplett aus.

$ 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.
[...]

Damit sind die Vorbereitungen abgeschlossen und ihr könnt die ganze Geschichte testen. Öffnet dazu irgendeine Anwendung die Ton abspielt und geht in den PulseAudio Lautstärkeregler. Dort geht ihr im Reiter Wiedergabe auf das entsprechende Programm und sucht euch aus der Dropdown-Box das Gerät raus, an welches PulseAudio-DLNA den Ton der Anwendung weiterleiten soll. Kurze Zeit später sollte der Sound aus diesem herauskommen — PulseAudio-DLNA müsst ihr dabei am Laufen lassen. Schaltet ihr später dann einmal das Gerät aus, wechselt PulseAudio-DLNA automatisch auf internes Audio zurück.

Mit Pulseaudio-DLNA leitet ihr den PC-Sound auf DLNA-fähige Geräte oder den Chromecast-Dongle.
Mit Pulseaudio-DLNA leitet ihr den PC-Sound auf DLNA-fähige Geräte oder den Chromecast-Dongle.

Zur Kontrolle könnt ihr einen Blick auf das Terminal werfen. Hier meldet PulseAudio-DLNA den Stream und spuckt bei Fehlerb auch weiterführende Informationen aus, die ihr an den Entwickler melden könntet. PulseAudio sollte sich übrigens die Kombination aus Programm und Ziel merken: Laufen PulseAudio-DLNA, das Gerät und die Anwendung wieder zur selben Zeit, spielt PulseAudio den Sound automatisch über das DLNA-Gerät ab.

[...]
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.

PulseAudio-DLNA 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 ergibt. Beim Abspielen von Musik ist das natürlich kein Problem, wer aber den Sound eines Films oder eines Computerspiels drahtlos per DLNA auf die Stereoanlage beamen möchte, der müsste sich damit begnügen, dass Ton und Bild nicht mehr exakt aufeinander passen.

30 Kommentare

    • Hi, ich habe einen AVR-3808. Ich kann grundsätzlich damit Internetradio hören, aber leider nicht zum Gerät streamen 🙁
      Nach ausführen von pulseaudio-dlna bekomme ich leider immer die Nachricht:

      "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"

      Ich habe im Netzwerk (Router FritzBox 7270) dem AVR eine feste Adresse zugeordnet!
      Welche Einstellungen muss ich vornehmen z.B. DCHP , daß das doch noch geht?!
      Vielleicht habt Ihr eine Lösung! Wäre super! Tolle Seite Christoph

      • Hallo Micha,

        Auf deinem Computer läuft ein Programm welches den Port 1900 bereits benutzt. pulseaudio-dlna braucht diesen aber um Geräte während des Ausführens zu finden.

        Jetzt gibt es 2 Möglichkeiten:
        Du schaltest das Programm, welches den Port nutzt ab. (Es wird irgendein DLNA Server sein, wie z.B.: MythTV, minidlna…)

        Oder du startest pulseaudio-dlna mit dem --disable-ssdp-listener flag. Also:

        pulseaudio-dlna --disable-ssdp-listener

        Dann wird nur einmal beim Starten nach Geräten gesucht und im laufenden Betrieb dann nicht mehr. Benutzen kannst du die gefundenen Geräte dann aber natürlich.

    • Theoretisch ja. Der Support von Sonos steht auch in der Beschreibung. Eine ältere Version der Software hat meine Sonos-Boxen auch gefunden, allerdings blieben sie stumm. Die aktuelle Version wollte nun meine Sonos-Boxen nicht mehr finden. Ich werde das noch ein wenig testen. Grüße, Christoph.

      • Hallo,

        die Sonos Geräte funktionieren mit der Version kleiner als 0.4 nicht. Diesen Versionen fehlen noch entsprechende DLNA Header (soweit ich mich erinnere).
        Mir wurde aber berichtet, dass die 0.4 Version funktioniert, daher die Aufnahme in die Liste der getesteten Geräte.

        Es gibt eventuell im Moment ein Problem mit dem Auffinden mancher Geräte. Es gibt ein Issue für ein bestimmtes Gerät auf Github. Leider meldet sich der Reporter dafür nicht.

        Falls also jemand behilflich seien möchte, dieser Sache auf den Grund zu gehen und zufällig noch Sonos Geräte besitzt, dann gern ein Issue auf Github eröffnen …

  1. Vielen Dank für diesen Artikel. Bin zufällig darüber gestolpert.

    Dieses Projekt ist ja mal voll geil. Sowas habe ich schon ewig gesucht.

    Danke! Mach weiter so.

  2. Eine kleine Ergänzung zu dem 0.5 s Latenzproblem.

    Möchte man den Ton in „Echtzeit“ übertragen, hat man bei Pulse-Audio zwei Optionen. Entweder man nutzt RTP (Real Time Protocol), oder den Pulse Audio eigenen Tunnel. Ich persönlich habe die besten Erfahrungen mit RTP gemacht. Bei beiden Verfahren werden die Audio Daten als roher audio stream übertragen. Dies bedeutet jedoch, dass die Übertragung mittels WLAN nicht unbedingt zu empfehlen ist. Bei mir setzt es immer mal aus, bei Kabel Verbindung klappt es jedoch überraschend gut. Die Kurzvariante zum einrichten ist:

    Sender (der Rechner der den ton zu Verfügung stellt): zur Textdatei /etc/pulse/default.pa

    ### Load the RTP sender module (also configured via paprefs, see above)
    load-module module-null-sink sink_name=rtp sink_properties="device.description='RTP Multicast Sink'" 
    load-module module-rtp-send source=rtp.monitor

    ( der Zeilen Umbruch muss vor dem load-module sein)

    Hinzufügen

    und beim Empfänger (der Rechner der an der Anlage angeschlossen ist):

    Ebenfalls in der /etc/pulse/default.pa

    ### Load the RTP receiver module (also configured via paprefs, see above)
    load-module module-rtp-recv latency_msec=50

    Ist der Empfänger Headless (ohne monitor, keine user meldet sich am) braucht es noch einen systemd service oder ein init script um Pulse Audio als daemon auf dem Empfänger laufen zu lassen. Dies kann leider beliebig kompliziert werden und hängt stark von anderen Programmen ab, die auf die Soundkarte zugreifen.

    Danach am besten beide Rechner neu starten.

    Jetzt sollte man am Sender eine neue Sink mit RTP Multicast sehen aller Ton der in diese RTP Sink geschickt wird sollte nahezu ohne Verzögerung am Empfänger wieder gegeben werden.

    Achtung das RaspberryPi 1. und 2. generation ist gerade so in der Lage einen RTP stream zu verarbeiten. Erst seit dem Neuen Pi (das mit 4 kernen) läuft es bei mir stabil.

  3. Ich habe einen Yamaha RX-V675, der bringt beim abspielen folgenden Fehler im Terminal:

    08-26 19:10:04 pulseaudio_dlna.listener                       INFO     Discovery complete.
    08-26 19:10:04 pulseaudio_dlna.pulseaudio                     INFO     Added the device "RX-V675 (DLNA)".
    08-26 19:10:30 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream28"
    08-26 19:10:30 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream28"
    08-26 19:10:30 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream29"
    08-26 19:10:31 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink4
    08-26 19:10:31 pulseaudio_dlna.pulseaudio                     INFO     Instructing the device "RX-V675 (DLNA)" to play ...
    08-26 19:10:31 pulseaudio_dlna.plugins.upnp.renderer          ERROR    "RX-V675" registering failed!
    08-26 19:10:31 pulseaudio_dlna.pulseaudio                     ERROR    The device "RX-V675 (DLNA)" failed to play!
    08-26 19:10:31 pulseaudio_dlna.pulseaudio                     INFO     on_device_updated "/org/pulseaudio/core1/sink3"
    08-26 19:10:31 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink3
    08-26 19:10:39 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream29"
    08-26 19:10:40 pulseaudio_dlna.pulseaudio                     INFO     _handle_sink_update /org/pulseaudio/core1/sink3
    • Hi,

      danke für den Artikel ich war schon lange auf der Suche nach einer Möglichkeit 🙂

      @launacorp
      Ich habe mit meinem Panasonic CXW684 exakt das selbe Problem… Hast du eine Lösung gefunden?

    • Hallo launacorp,

      hat dein Yamaha reciever vielleicht verschiedene modes? Ich habe gerade einen Blick auf den Yamaha CRX-N560D werfen können. Dieser funktioniert mit pulseaudio-dlna wenn er im Mode: SERVER steht. Ansonsten kommt ein Register-Fehler der deinem sehr ähnlich ist.

      Schau mal ob dein Reciever auch verschiedene Modes hat. Der Yamaha CRX-N560D bietet z.B.: CD,TUNER,AUX1,AUX2,DIGITAL1,DIGITAL2,SERVER,NET RADIO,USB,AirPlay,Spotify

      • Hey, vielen Dank!!!!
        DAS war der entschiedene Tipp.
        Ich habe so lange die „NET-Taste“ der Fernbedienung gedrückt, bis der Modus „Server“ aktiv war.

        Vorher hatte ich schon pulseaudio-dlna am Laptop gestartet. Dann die Ausgabe meines Mint auf den RX-V675 eingestellt. Sobald ich nun Banshee oder ein vergleichbares Programm starte wird im Screen (am TV) dann der Netzwerkname meines Laptops angezeigt. Dann ne MP3 gestartet und lüppt.

        Vielen vielen Dank!!!

  4. Danach habe ich lange gesucht!!!!
    Aber mal ne Verständnisfrage: wie wird der Sound übertragen?
    Mein Yamaha 473 kann ja diverse Formate wie mp3, flac usw. über dlna abspielen.
    Was macht mein Linuxrechner mit dem Sound, wird er in ein kompatibeles Format, z.B. mp3 in Echtzeit konvertiert und dann übertragen und der Verstärker spielt das mit dem eigenen Decoder ab?
    Wie ist die Qualität dabei?
    Oder was geht da vom PC zum Verstärker?
    Danke für Erhellendes,

    ikarus

    • Bei DLNA wird bei Bedarf konvertiert. Schau dir mal in der Wikipedia zu DLNA die Tabelle „DLNA-Medienformate für Heimnetzwerkgeräte“ an. Plicht ist Suffort für JPEG, LPCM, und MPEG2. Andere Formate wie MP3, AC3 oder MPEG4 sind nur optional. Daher muss bei DLNA eben sowieso oft on the fly neu kodiert werden… was auch die Verzögerungen erklärt. Grüße, Christoph.

  5. Super,
    hatte mich vor bald 10 Jahre zuletzt mit dem Thame befasst (leider mit mäßigem Erfolg. PulseAudio war damals alles andere als Marktreif und für die professionelleren Lösungen schien ich zu doof).

    Habe dann die Funktion auch jahrelang nicht vermisst. – Erst ne kleine Studentenbude, in der ich nur ein Notebook und ein paar billige 2.1 Boxen über Klinke drangeklemmt hatte, im Anschluss habe mir am Notebook meine Playlists in Spotify zurechtgeklickt und über Kodi/Spotlight am Raspberry Pi über den HDMI Ausgang und dem AV-Reciever gehört.

    Nun ist mir in Spotify die neue Funktion aufgefallen, welche Vorschläge für einzelne Wiedergabelisten liefert, womit ich viele Lieder (wieder-)Entdecke, die ich sofort über meine vernünftige Anlage hören möchte und nicht erst der Playlist hinzufügen, mich durch das Kodi-Menü quälen und dafür sorgen, dass das „Reinhören“ auf dem Notebook gestoppt ist…

    Von der Idee, es nochmals zu versuchen bis zum Audiostream dauerte es keine 5 Minuten.

    Meine Config:
    ArchLinux (Kernel 4.6.4) – PulseAudio 9 – PulseAudio-DLNA 5.2 -/- Raspberry Pi3 – OSMC

    Auch wenn der Artikel fast ein Jahr alt ist: Besten Dank

    • Kleiner Nachtrag, den ich im Artikel zuvor vergessen hatte:
      Über meinem Arch werkelt ein KDE Plasma 5.7. Statt dem „pavucontrol“ nutze ich die die KDE eigene Lautstärkesteuerung (Plasmoid(?)).
      Im aufgeklappten Menü aus der Taskleiste kann ich per Drag&Drop das Logo der Anwendung packen und nach einer kleinen Mausbewegung werden mir gleich die verfügbaren Abspielgeräte vorgeschlagen, wo ich das „Logo“ über dem gewünschten Gerät „fallenlassen“ kann.

  6. Moin,

    kann man das irgendwie auch für einen Raspberry Pi (2) compilieren, auf dem LibreElec läuft, kompilieren. Ich würde gern mein Google Play Music Abo damit an meine dlna Reveiver im Haus verteilen und dazu keine Linuxkiste (was der Pi ja irgendwie schon ist) aufsetzen.

  7. Ich habe diese Info gefühlt seit einem halben Jahr gesucht um einen MEDION-Speaker MD83867 direkt von Linux (Mint) aus ansteuern zu können – das hier ist die einzige Lösung die funktioniert hat – DANKE für den Beitrag 🙂

  8. Hallo Christoph, vielen Vielen Dank. Es läuft auch unter Ubuntu 16.04.
    Perfekt Danke :))))))))))))))))))))))))))))))))
    Läuft mit Denon CEOP N8 hervorragend

      • Nun habe ich ein kleines Problem: Der Lautsprecher des Lenovo V110-15iSK hat eine anscheinend einen Wackelkontakt. Leichtes Klopfen auf das Gehäuse lies noch einen Ton erklingen. Dann nix mehr. Kann es sein, dass bei normaler Nutzung hier ein Kabel sich lockert ?
        Pulse zeigt auch an :

        Lautsprecher (unavailable)

        Kopfhöreranschluss geht.
        Starte ich

        pulseaudio-dlna

        , läuft auch alles über die CEOL Anlage.
        Allerdings springt nach Beendigung eines Liedes aus YT alles wieder zurück auf internes Audio.
        Sorry für evtl. Off Topic

  9. Hallo,
    vielen Dank für die Anleitung. Eine solche Möglichkeit, meine Musik vom PC zur HiFi-Anlage zu streamen, habe ich auch schon länger gesucht. Nutze bisher Virtualbox und einen Windowsplayer. Ist mir aber zu aufwendig und ich möchte ganz von Windows weg.
    Ich habe mich aber leider zu früh gefreut, da die Sache nicht funktioniert. Die Installation unter Linux-Mint Mate klappte zwar… mein Netzwerkplayer Naim ND5-XS ist anwählbar, die Musik läuft, der Player (Banshee) wird im Display des ND5-XS angezeigt, aber ich höre leider nichts.
    Wenn jemand einen Tip hätte, wäre ich sehr dankbar.

    • Hast Du unter KLANGEINSTELLUNGEN auf DNLA gestellt ?
      Unter PULS schauen, ob die WIEDERGABE auf DLNA steht.
      Ich habe momentan das Problem, dass nach jedem Song die Ausgabe wieder auf INTERN springt,

  10. Als Linux-Newbie habe ich einen alten Laptop mit Lubuntu aufgesetzt und dank dieser Anleitung auf Anhieb meinen Denon AVR-1912 als Streaming Client nutzen können. Auch das Panasonic TV mit Viera lässt sich ansteuern. Bin total begeistert und dankbar für diesen Blogartikel – obwohl er inzwischen in die Jahre gekommen ist. 🙂
    Einen Tipp bräuchte ich als Anfänger aber noch: Lässt sich pulseaudio-dlna irgendwie automatisch zusammen mit dem Lautstärkeregler starten? Ich muss es bisher immer über eine Terminalsitzung manuell starten…
    Schon mal im voraus herzlichen Dank für Hinweise oder Links

Schreibe einen Kommentar zu Massimo Antwort abbrechen

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein