Server
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Wie im Artikel MPD beschrieben ist die Software nach dem Client-Server Prinzip aufgebaut. Der Server stellt die Audiodateien bereit, die dann von den Clients abgespielt werden können.
Die Einrichtung auf der Benutzerebene, mit der die Einbindung mit PulseAudio wesentlich einfacher vonstatten geht, wird in MPD auf der Benutzerebene beschrieben.
Installation¶
Für den MPD Server muss das folgenden Paket installiert[1] werden:
mpd (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install mpd
Oder mit apturl installieren, Link: apt://mpd
Ein Client-Programm muss noch separat lokal oder auf einem weiteren Rechner installiert werden.
Konfiguration¶
Der MPD wird über die zentrale Konfigurationsdatei /etc/mpd.conf konfiguriert. Diese Datei existiert schon und ist vorkonfiguriert. Mit einem Editor[4] mit Root-Rechten[5] kann man MPD nun individuell einrichten.
Die Daten für die Einstellung sind als Schlüssel-Werte Paare hinterlegt, wobei Schlüssel und Wert durch (mindestens) ein Leerzeichen oder Tabulator getrennt sein müssen und der Wert muss in Anführungszeichen eingeschlossen sein. Beispiel:
music_directory "/var/lib/mpd/music"
Viele Optionen sind in der Konfigurationsdatei schon aufgeführt, allerdings über das Rautezeichen #
am Anfang der Zeile auskommentiert. Entfernt man die Raute, wird die entsprechende Zeile aktiv, nachdem der Server neu gestartet wurde.
Im Folgenden werden einige (wichtige) Optionen aufgezeigt. Die Datei ist aber auch ausführliche (in Englisch) kommentiert, und auch die Manpage mpd.conf erläutert alle mögichen Optionen.
Verzeichnisse für Audiodateien¶
MPD verwendetet standardmäßig die folgenden Einstellung für Verzeichnisse für Audiodateien und Playlisten:
music_directory "/var/lib/mpd/music" playlist_directory "/var/lib/mpd/playlists"
Hierbei ist zu beachten, dass MPD unter dem Benutzer mpd
(Gruppe audio
) läuft. Dieser oder die Gruppe audio
müssen auf die Verzeichnisse lesend zugreifen dürfen. Eventuell muss man daher die Dateirechte der angegebenen Verzeichnisse anpassen. Mehr zu diesem Thema findet man im Wiki unter Rechte. Kommentiert man die Zeile mit user
komplett aus, wird der Dienst mit Root-Rechten gestartet.
Sound-Ausgabe¶
MPD ist bei der Wiedergabe von Musik sehr flexibel. Es kann verschiedene Soundarchitekturen nutzen sowie – falls im System vorhanden – unterschiedliche Soundkarten ansteuern. Standardmäßig wird die ALSA Schnittstelle genutzt
Zusätzlich kann MPD Streaming-Server wie Icecast2 oder auch einen integrierten http-Server zur Ausgabe verwenden. Für die verschiedenen Ausgabe-Möglichkeiten sind auskommentierte Standard-Einstellungen in der Konfiguration-Datei vorhanden, die man jeweils nur einkommentieren muss.
Da der Benutzer mpd
Mitglied der Gruppe audio
ist (überprüfen mit id mpd
), sollte er alle Möglichkeiten der Sound-Ausgabe nutzen können.
Alsa¶
Die Ausgabe über die Alsa-Soundkarte ist voreingestellt. Wird sie nicht gewünscht, muss man den Bereich auskommentieren.
Im folgenden Beispiel wird der Sound an die zweite im System befindliche Soundkarte via ALSA geschickt:
# use this if you want to use ALSA audio output audio_output { type "alsa" name "Soundkarte" device "hw:0,1" # optional format "44100:16:2" #optional }
PulseAudio¶
Der erweiterte Soundserver PulseAudio ist standardmäßig ab Ubuntu 8.04 im Einsatz. Die passenden Zeilen dafür sehen wie folgt aus:
audio_output { type "pulse" name "MPD PulseAudio Ausgabe" server "localhost" # optional #sink "alsa_output" # optional }
Der server
muss ggf. localhost
sein, ansonsten taucht die mpd-Ausgabe nicht in den Audio-Einstellungen auf, und mpd blockiert die Soundkarte für andere Anwendungen, zudem kann andersherum mpd nichts ausgeben, wenn andere Sound-Anwendungen laufen.
sink
ist der Wert für die PulseAudio-Standard-Ausgabe und wird automatisch ermittelt, wenn man ihn nicht angibt. Gibt man dennoch einen Wert an, muss dieser auch korrekt ermittelt sein, sonst erhält man folgende Fehlermeldung:
Cannot connect to server in PulseAudio output "MPD PulseAudio Ausgabe" (attempt 1): No such entity
Daher sollte man den Wert mit folgendem Befehl ermitteln:
pactl stat
Dabei kann zum Beispiel Folgendes herauskommen:
Standard-Ausgabe: alsa_output.pci_8086_27d8_sound_card_0_alsa_playback_0
Demnach muss der Wert angepasst werden:
sink "alsa_output.pci_8086_27d8_sound_card_0_alsa_playback_0" # optional
Hinweis:
Ggf. ist es für die Nutzung mit PulseAudio allerdings sinnvoller - zudem einfacher zu konfigurieren - MPD auf der Benutzerebene zu verwenden, da auch PulseAudio als Benutzerdienst konzipiert ist. Die Verwendung als Streamimgserver etc. ist damit genauso möglich wie hier beschrieben.
Jack¶
Ein Anschluss für den Soundserver JACK lässt sich leicht erstellen (wobei der Name frei gewählt werden kann):
audio_output { type "jack" name "mpdjack" }
Die Angaben zu device
und format
werden nicht hier, sondern in den Einstellungen von JACK vorgenommen.
Eingebauter Webserver¶
MPD verfügt über einen eingebauten Webserver (http
), der zur Soundausgabe genutzt werden kann. Man muss beachten, dass man die Qualität des Streams entweder als Qualitäts-Stufe oder als Bitrate, niemals aber beides, angibt.
audio_output { type "httpd" name "MPD HTTP Stream" encoder "vorbis" # optional, vorbis oder lame port "8000" quality "5.0" # entweder # bitrate "128" # oder format "44100:16:1" }
Mit diesen Einstellungen ist der Stream über die Adresse http://HOSTNAME:8000
bzw. http://IP:8000
abrufbar.
Streamingserver¶
Mit MPD kann man auch gängige Streamingserver „bestreamen“, die Einstellungen für den Icecast2-Server sind in der Datei /etc/mpd.conf schon vorkonfiguriert, jedoch noch auskommentiert.
audio_output { type "shout" name "Name des Radiosenders" host "localhost" port "8000" mount "/stream" # nur bei Icecast password "hackme" quality "5.0" # oder: bitrate "128" format "44100:16:2" user "source" # nur bei Icecast description "Beschreibung der Sendung" # optional genre "jazz" # optional public "no" # optional }
Die Optionen ergeben sich zum größten Teil aus der Konfigurationsdatei des Streamingsservers, in diesem Fall vom Icecast2. Damit der MPD sich mit dem Icecast-Server verbindet muss der MPD etwas abspielen, steht der MPD still, besteht auch keine Verbindung. Zum Steuern des MPD über einen Client auf dem selben Rechner muss wie oben beschrieben mindestens eine Soundkarte definiert sein.
Netzwerk-Freigabe¶
Nach der Installation ist MPD so konfiguriert, dass man ihn nur vom localhost
– also vom lokalen Rechner – aus ansprechen kann. Da einer der Hauptgründe für den Einsatz eines Musikservers normalerweise die Möglichkeit der Steuerung über das Netzwerk ist, sollte diese Bindung aufgehoben werden, so dass alle Rechner aus dem lokalen Netzwerk MPD ansprechen können:
# Set this value if you only have one # address you want to allow connection to. # bind_to_address "localhost"
Die Option bind_to_address
kann mehrfach angegeben werden, so dass der MPD-Server an mehrere IP-Adressen gebunden werden kann.
Port definieren¶
Es lässt auch der Port festlegen, an dem MPD nach Anfragen aus dem Netzwerk lauschen soll – üblicherweise ist hier allerdings die Voreinstellung ausreichend. Bei Bedarf kann man ihn aber ändern über:
port "6600"
Logdateien¶
Möchte man wissen, was der MPD-Server macht oder hat man Probleme, sich zu verbinden oder Musik abzuspielen, kann man MPD Logdateien schreiben lassen. (Direkt nach der Installation ist diese Funktion deaktiviert.)
# Valid options are "default", "secure" or "verbose". log_level "verbose"
Die Logs findet man anschließend im Verzeichnis /var/log/mpd/. Weitere Informationen bezüglich Logs findet man im Wiki unter Logdateien.
Rechtevergabe¶
Interessant ist noch die Option password
. Sie ist nicht nur ein Passwort, um den Daemon zu schützen, sondern man kann password
mehrmals definieren, um so mehrere Benutzer mit unterschiedlichen Rechten anzulegen. Die Syntax lautet:
Password "passwort@permissions"
Als permissions
kann man eine kommagetrennte Liste aus read
, add
, control
und/oder admin
notieren, also zum Beispiel:
Password "geheim@read,control"
Wenn man sich nun mit dem Passwort geheim
am MPD anmeldet, hat man das Recht, die Datenbank zu lesen und den MPD zu kontrollieren. Das Attribut add
erlaubt, Stücke zur Datenbank hinzuzufügen und der admin
hat das Recht, den Daemon zu beenden.
Lautstärkeregelung¶
In der Konfigurationsdatei finden sich verschiedene Einstellungsmöglichkeiten, um dem Client eine Regelung der Lautstärke zu ermöglichen:
mixer_type "software" # hardware/software/disabled
hardware: Lautstärke wird über die Hardware der Soundkarte geregelt. Damit ändert sich für alle Soundausgaben die Lautstärke. Funktioniert nicht mit jeder Soundkarte
software: Lautstärke wird softwaremäßig nur für die Ausgabe des MPD-Servers geregelt
disabled: Lautstärkeregelung über MPD-Client soll nicht möglich sein
Weitere Optionen¶
Weitere mögliche Optionen sind in der Datei /usr/share/doc/mpd/examples/mpdconf.example.gz sehr ausführlich dokumentiert.
Konfiguration abschließen¶
Nachdem man MPD an die eigenen Bedürfnisse angepasst hat, muss man MPD seine Konfiguration neu einlesen lassen:
sudo service mpd restart
Radiostreams abspielen¶
Um Radiostreams mittels MPD abzuspielen, legt man im Playlistverzeichnis eine neue Datei namens Radiosender.m3u an und schreibt pro Zeile eine Streamadresse. Stationsübersichten finden finden sich im Artikel Internetradio/Stationen und Internetradio/Internetradio-Stationen. Kennt man von einem gewünschten Radiosender nicht die direkte Streamadresse, sondern nur den Link auf einen .m3u-Container, kann man diesen einfach im Playlistverzeichnis ablegen. Beispielsweise kann der Sender WDR 5 mittels Terminal wie folgt hinzugefügt werden:
Über den Playlistordner können nun die Streams von den Clients ausgewählt und abgespielt werden.
Benutzung¶
Der Server wird nach der Installation und bei jedem Systemstart über eine systemd Unit automatisch gestartet. Im laufenden Betrieb kann der Server mit den folgenden Befehlen kontrolliert werden[2]:
# Allgemein sudo service mpd {start|stop|restart} # Beispiel sudo service mpd stop
start
: Startet den MPD Dienststop
: Stoppt den Server wiederrestart
: Startet den Server neu, bestehende Verbindungen auf den Server werden gekappt
Problem und Lösung¶
Konfigurationsdatein mpd.conf nicht vorhanden¶
Sollte die Konfigurationsdatei nach der Installation des MPD nicht korrekt vorhanden sein, kann man MPD durch debconf
erneut aus einem Terminal[3][5] heraus konfigurieren lassen.
sudo dpkg-reconfigure -plow mpd
Hat man den Befehl ausgeführt, muss MPD über die /etc/mpd.conf nochmals von Hand konfiguriert werden.
Server läuft, aber keine Soundwiedergabe¶
In manchen fällen geschieht der Eintrag von Benutzer mpd
in Gruppe audio
nicht automatisch, in diesen Fällen läuft der MPD sauber an, kann aber keine Wiedergabe starten. In solch einem Fall muss der Eintrag von Hand vorgenommen werden.
sudo usermod -aG audio mpd #Setzt die Gruppenzugehörigkeit cat /etc/group | grep audio #Zeigt Mitglieder der Gruppe audio an
Musiksammlung auf externem Datenträger¶
Liegt die Musiksammlung auf einem externen Datenträger, muss sichergestellt werden, dass der Benutzer mpd
darauf zugreifen darf. Dazu bindet man den Datenträger über die fstab ein. Da es sich bei externen Datenträgern häufig um FAT- oder NTFS- Partitionen handelt, sei hier besonders auf den Artikel Windows-Partitionen einbinden hingewiesen. Der Benutzer mpd
muss anschließend der Gruppe plugdev
hinzugefügt werden.[7]
Große Playlists¶
Wer seine komplette Sammlung in einer Playlist zusammenfassen möchte, um daraus z.B. eine Zufallswiedergabe zu starten, muss ggf. die Werte für die Maximalgröße der Liste verändern. Standardmäßig kann MPD Listen mit bis zu 16384 (entspricht 214) Einträgen verarbeiten. In der mpd.conf-Datei kann der Wert aber heraufgesetzt werden, möglichst in weiteren 2er-Potenzen, z.B.
max_playlist_length "131072"
Allerdings können nicht alle Clients damit umgehen!
Links¶
Homepage 🇬🇧
Musik verwalten Übersichtsartikel