Die Ansteuerung des Audio-Player Universalgenies MPD (Music Player Daemon, www.musicpd.org) mit dem Gira HomeServer funktioniert prima. Die Vorgehensweise und damit die Realisierung eines Multiroom-Soundsystems mit vollständiger Automatisierbarkeit ist im Praxisteil des SmartHome Kompendiums Heimautomation mit KNX, DALI, 1-Wire und Co. (Kapitel 56) detailliert erläutert.   In diesem Blog-Betrag möchte ich eine mögliche Erweiterung vorstellen, mit der Sie eine komfortable Bedienoberfläche für MDP mit Ihren HomeServer QuadClient umsetzen können.  

Komfortable Multiroom-Audio Benutzeroberfläche basierend auf MPD

Die Erweiterung basiert auf dem Zusammenspiel von MPD, einem darauf aufgesetzten UPnP Audio Media Renderer und einem Media Streaming Server. Beginnen wir mit der Installation und Einrichtung des Media Renderers.

Einrichtung des UPnP Audio Media Renderers

Die Wahl für den Renderer fiel auf upmpdcli, dem schnellen in C++ geschriebenen UPnP Frontend für MPD. Upmpdcli ist unter der GPL lizensiert und kann damit frei benutzt werden. Die Installation unter Ubuntu läuft sehr einfach ab:

sudo add-apt-repository ppa:jean-francois-dockes/upnpp1
sudo apt-get update
sudo apt-get install upmpdcli

Im Config-File nehmen Sie die für Ihr Setup benötigten Änderungen vor:

sudo nano /etc/upmpdcli.conf

Eine Beispiel-Konfiguration, welche auf die im Buch vorgeschlagene Multiroom-Lösung aufsetzt, würde so aussehen:

# Configuration file for upmpdcli, the UPnP Media Renderer front-end to MPD
# Note: the command line options have higher priorities than the values in
# this file.
# Host MPD runs on. Defaults to localhost. This can also be specified as -h host
mpdhost = 192.168.178.58
# Port for MPD. Can also be specified as -p port
mpdport = 6601
# MPD Password
#mpdpassword =
# Displayed "Friendly Name" for the UPnP Media Renderer
friendlyname = Esszimmer
# Log file name. Defaults to stderr. This can also be specified as
# -d logfilename
logfilename = /var/log/upmpd.log
# Log level. 0-4. Can also be specified as -l loglevel.
loglevel = 0
# Network interface to use for UPnP.
upnpiface = eth0
# IP address to use for UPnP. Alternative to using an interface Name
#upnpip =
# Port number used for UPnP.
#upnpport = 6677
# Decide if we offer the OpenHome services. 0 or 1.
# The default is 'yes' as OpenHome queuing is superior for most usages.
openhome = 0
# Enable UPnP AV services. This is set by default, but it may useful to
# disable it with some pure OpenHome Control Points.
upnpav = 1
# Save queue metadata to disk to allow persistence across restart, like MPD.
ohmetapersist = 1
# Mimimum interval (Seconds) between 2 saves of the cache. Setting this may
# improve playlist load speed on a slow device. The default is to start a
# new save as soon as the previous one is done (if the list changed again
# inbetween).
# ohmetasleep = 0
### Parameters for the sc2mpd Songcast helper command:
# Log file name (default stderr), and level. The file must *not* be the
# same as the one for upmpdcli
#sclogfilename = /tmp/scmpdcli.log
#scloglevel = 6
# Port for connections from MPD to sc2mpd. The latter only accepts
# connections from localhost. Default 8888
#schttpport = 8888
# Path to the sc2mpd if it is not in /usr/bin and the location is not in
# the PATH for the init scripts.
#sc2mpd = /usr/bin/sc2mpd

Sobald Sie den upmpdcli-Service neustarten, kommen Ihre Änderungen an dem Config-File zur Geltung:

sude service upmpdcli restart

Der nächste Schritt besteht darin, Ihr Multiroom-Audio System durch einen echten UPnP Media Streaming Servers zu erweitern.

Installation und Konfiguration des Media Streaming Servers

Dazu habe ich eine Menge an unterschiedlichen Software-Lösungen durchprobiert (minidlna, Universalmediaserver, MediaTomb, MediaMonky, Twonky Mediaserver) und bin schließlich bei Serviio gelandet, der meine Anforderungen (Cover-Fotos, Playlisten, Web-Administration, Kompatibilität zum UPnP-Plug-In des Gira HomeServers) am Besten erfüllte.

Installation von Serviio

Gehen Sie für Ubuntu Linux nach der folgenden Installations-Anleitung vor:

Schritt 1: Java 8 Installation

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Schritt 2: FFMPEG Installation

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

Schritt 3: Serviio installieren

Werfen Sie einen kurzen Blick auf die Downloadseite von Serviio, um herauszufinden, welches die Aktuelle Version ist. Für Serviio 1.5.2 lauten die Shell-Kommandos zur Installation:

wget http://download.serviio.org/releases/serviio-1.5.2-linux.tar.gz
sudo tar xzf serviio-1.5.2-linux.tar.gz
mv serviio-1.5.2 serviio
sudo mv serviio /usr/local/share/

Schritt 4: Start-Skript erzeugen

Legen Sie mit

sudo nano /etc/init/serviio.conf

ein File an, kopieren folgenden Inhalt in das File und speichern es:

start on started Networking
script
LANG=de_DE.utf8 /usr/local/share/serviio/bin/serviio.sh
end script

Gegebenenfalls können Sie die Benutzer-Rechte für das Skript anpassen, z.B.:

sudo chown -R chef:chef /usr/local/share/serviio/

Starten Sie den Service erstmalig mit:

sudo start serviio

Nach einem Reboot wird serviio künftig automatisch gestartet, was Sie mit

initctl list | grep serviio

prüfen können.

Installation der Web Adminstrationsoberfläche

Für Serviio exisitert eine komfortable Möglichkeit zur Administration über eine Weboberfläche. Sie nennt sich Web UI in PHP und bietet all die Möglichkeiten, welche Sie ansonsten nur mit der Serviio Console haben. Gehen Sie zur Installation (Beispiel für de Version 1.5), in Verbindung mit dem lighttpd-Webserver (siehe Buch, Abschnitt 50.11) folgendermaßen vor:

cd /var/www
sudo wget https://github.com/SwoopX/Web-UI-for-Serviio/archive/Serviio-1.5.zip
sudo unzip Serviio-1.5.zip
sudo mv Web-UI-for-Serviio-Serviio-1.5 serviio
sudo chown www-data:www-data serviio
sudo apt-get install php5-xmlrpc
sudo apt-get install php5-curl
sudo service lighttpd restart

Die Webseite können Sie ab jetzt unter http://IhreServerIP/serviio im Browser anwählen. Besuchen Sie dort zuerst den Reiter Library bzw. Bibliothek, fügen den Pfad zu Ihrer Musik-Sammlung hinzu und kreuzen die vier Checkboxen in der rechten Spalte an (siehe Abbildung).

Serviio Einstellungen mit Web UI in PHP
Serviio Einstellungen

Plug-In Installation für den QuadClient

Die serverseitige Installation haben Sie an dieser Stelle abgeschlossen. Widmen Sie sich jetzt den beiden notwendigen Plug-Ins (UPnP-Control Point/MediaRenderer und UPnP-Control Point/MediaServer) für den QuadClient. Ordnen Sie über den QuadConfig-Editor den MediaRenderer dem oberen und den MediaServer dem unteren Quadranten zu, speichern ab und programmieren Ihren HomeServer neu. Im QuadClient haben Sie von nun an die Möglichkeit, aus Ihrem Audio-Archiv (unterer Quadrant) jeden gewünschten Titel auszuwählen und seine Wiedergabe über den Player (oberer Quadrant) zu steuern.

QuadClient mit UPnP Plug-Insund MPD
QuadClient mit UPnP Plug-Ins und MPD

Herzlichen Glückwunsch, Sie besitzen zu Ihrem mächtigen Multiroom-Audio Setup jetzt auch noch eine komfortable Steuerung mittels QuadClient.

Erweiterungen

Erweiterung  Beschreibung 
 ServiiDroid  Steuern Sie Serviio über Ihr Android Smartphone
Plug-Ins für Serviio http://forum.serviio.org (nach Plug-In Installation: sudo service serviio restart)
QuadClient Config, Automatisierung und Playlisten kommt bald in diesem Blog …

Alternativen

Für Alternative Kommetar 
upmpdcli MediaPlayer in Java, statt C++
Serviio minidlna, Universalmediaserver, MediaTomb, MediaMonky, Twonky Mediaserver  je nach individuellen Anforderungen

 

MPD ansteuern mit upmpdcli und Serviio DLNA-Server
Markiert in:                     

3 Kommentare zu „MPD ansteuern mit upmpdcli und Serviio DLNA-Server

  • 10. Februar 2018 um 15:52 Uhr
    Permalink

    Hallo Stefan,

    kann man mit upmpdcli auch mehrere mpd Instanzen ansprechen?
    Ich habe wie im Buch beschrieben, 14 mpd´s (alles mono) für ein Multiroom laufen.
    Upmpdcli habe ich installiert und ihm die mpd Instanz bzw. den Port für alle Räume gegeben, was allerdings nicht ganz praktisch ist wenn man mehrere Bewohner im Haus hat.
    Jetzt würde ich gerne jede mpd Instanz separat über upmpdcli ansteuern, damit jeder seine Musik in seinem Zimmer über sein Handy streamen kann.
    Ist das möglich?

    Vielen Dank!

    Gruß Frank

    Antworten
  • 24. September 2017 um 18:25 Uhr
    Permalink

    Hallo,

    in Kapitel 56 des Buches beschreiben sie die Realisierung eines Multiroom Systems auf Basis eines NUCs, ich habe ein paar Fragen dazu:
    – Ich habe aktuell im Wohnzimmer ein 5.1 Soundsystem das ich für Musik aber auch für meinen TV verwende. Verträgt der NUC auch 2 oder 3 Soundkarten um so einige Stereo Zonen aber auch eine 5.1 oder 7.1 Zone einzurichten?
    – Wie bekomme ich es hin das beim TV auch das 5.1 des Multiroom Systems verwendet wird?
    – Wie ist verglichen mit einem HiFi System die Qualität dieser Lösung?

    Gruß
    Thomas

    Antworten
    • 27. September 2017 um 22:36 Uhr
      Permalink

      Hallo Thomas,
      freut mich, dass Du dich mit Multiroom-Audio beschäftigst. Ich würde sagen, Ja, der NUC kann auch mehr als eine Soundkarte vertragen. Ich habe es zwar nicht ausprobiert, würde aber meinen es geht.
      Die Qualität hängt stark von der Qualität der Soundkarten ab und von der Endstufe, kann durchaus an HIFI-Qualität heranreichen, die richtigen Lautsprecher natürlich vorrausgesetzt.
      Ich war auf jeden Fall aber extrem positiv überrascht, selbst in Verbindung mit Deckenlautsprechern.
      Viele Grüße,
      Stefan

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Cookie Consent mit Real Cookie Banner