Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


11.9.29 Audio-Dienste

Das Modul (gnu services audio) stellt einen Dienst zur Verfügung, um MPD (den Music Player Daemon) zu starten.

Music Player Daemon

Der Music Player Daemon (MPD) ist ein Dienst, der Musik abspielen kann und der dabei vom lokalen Rechner oder über das Netzwerk durch verschiedene Clients angesteuert werden kann.

Das folgende Beispiel zeigt die einfachstmögliche Konfiguration, wie man eine Musiksammlung in /srv/music mit einem unter dem vorgegebenen Benutzer ‘mpd’ laufenden mpd anbieten kann. Dabei wird PulseAudio zur Ausgabe verwendet. Der Benutzer startet einen eigenen PulseAudio-Daemon, der mit dem normalen Benutzerkonto um die Soundkarte konkurrieren kann. Dann kann es notwendig sein, die Wiedergabe anderer Audio-Anwendungen abzubrechen, um die Ausgabe von MPD zu hören, und andersherum.

(service mpd-service-type
         (mpd-configuration
          (music-directory "/srv/music")))

Wichtig: Auf das als music-directory angegebene Verzeichnis muss der MPD-Benutzer, vorgegeben ist ‘mpd’, Lesezugriff haben. Wenn Berechtigungen fehlen, findet man Fehlermeldungen ‘Permission denied’ in den MPD-Protokollen, die sich nach Vorgabe in /var/log/messages befinden.

Die meisten MPD-Clients lösen eine Aktualisierung der Datenbank aus, wenn sie eine Verbindung aufbauen, aber Sie können sie auch selbst mit der update-Aktion auslösen:

herd update mpd

Alle MPD-Konfigurationsfelder werden nun beschrieben; danach folgt ein komplexeres Beispiel.

Variable: mpd-service-type

Der Diensttyp für mpd.

Datentyp: mpd-configuration

Verfügbare mpd-configuration-Felder sind:

package (Vorgabe: mpd) (Typ: dateiartig)

Das MPD-Paket.

user (Typ: Benutzerkonto)

Das Benutzerkonto, mit dem mpd ausgeführt wird.

group (Typ: Benutzergruppe)

Die Benutzergruppe, mit der mpd ausgeführt wird.

Vorgegeben ist %mpd-group, was für eine System-Benutzergruppe mit Namen „mpd“ steht.

shepherd-requirement (Vorgabe: '()) (Typ: Liste-von-Symbolen)

Eine Liste von Symbolen, die Shepherd-Dienste angeben, von welchen dieser Dienst abhängen soll.

environment-variables (Vorgabe: '("PULSE_CLIENTCONFIG=/etc/pulse/client.conf" "PULSE_CONFIG=/etc/pulse/daemon.conf")) (Typ: Liste-von-Zeichenketten)

Eine Liste von Zeichenketten, die Umgebungsvariable festlegen.

log-file (Typ: Vielleicht-Zeichenkette)

Der Ort, wo die Protokolldatei gespeichert werden soll. Wenn Sie hier nichts angeben, werden Protokolle an den lokal laufenden syslog-Daemon geschickt. Sie können auch einen Dateinamen angeben, zum Beispiel /var/log/mpd.log.

log-level (Typ: Vielleicht-Zeichenkette)

Unterhalb welchen Schwellwerts keine Nachrichten protokolliert werden sollen. Zur Auswahl stehen, absteigend sortiert nach der Ausführlichkeit: verbose (ausführliche Warnmeldungen), info (Informationen), notice (Benachrichtigungen), warning (Warnmeldungen) und error (nur Fehler).

music-directory (Typ: Vielleicht-Zeichenkette)

Das Verzeichis, in dem nach Musikdateien gesucht wird.

music-dir (Typ: Vielleicht-Zeichenkette)

Das Verzeichis, in dem nach Musikdateien gesucht wird.

playlist-directory (Typ: Vielleicht-Zeichenkette)

Das Verzeichnis, um Wiedergabelisten („Playlists“) zu speichern.

playlist-dir (Typ: Vielleicht-Zeichenkette)

Das Verzeichnis, um Wiedergabelisten („Playlists“) zu speichern.

db-file (Typ: Vielleicht-Zeichenkette)

Der Ort, an dem die Musikdatenbank gespeichert wird. Wenn nichts angegeben wird, wird ~/.cache/db benutzt.

state-file (Typ: Vielleicht-Zeichenkette)

Der Ort, an dem die Datei mit dem aktuellen Zustand von MPD gespeichert wird.

sticker-file (Typ: Vielleicht-Zeichenkette)

Der Ort, an dem die Sticker-Datenbank gespeichert wird.

default-port (Vorgabe: 6600) (Typ: Vielleicht-Port)

Was die Voreinstellung dafür sein soll, auf welchem Port mpd ausgeführt wird.

endpoints (Typ: Vielleicht-Liste-von-Zeichenketten)

Die Adressen, an die sich mpd binden wird. Sie können dabei auch einen Port angeben, um einen anderen Port als den voreingestellten default-port zu benutzen, etwa localhost:6602, und wenn Sie IPv6-Adressen angeben, müssen Sie außen herum eckige Klammern schreiben, um den Port angeben zu können. Um einen Unix-Socket zu benutzen, würden Sie hier einen absoluten Pfad angeben oder einen Pfad, der mit ~ beginnt, angeben.

address (Typ: Vielleicht-Zeichenkette)

Die Adresse, an die sich mpd binden wird. Um einen Unix-Socket zu benutzen, kann hier ein absoluter Pfad angegeben werden.

database (Typ: Vielleicht-„mpd-plugin“)

Eine Konfiguration eines MPD-Datenbank-Plugins.

partitions (Vorgabe: '()) (Typ: Liste-von-„mpd-partition“)

Liste von MPD-Partitionen.

neighbors (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Neighbor-Plugins.

inputs (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Eingaben-Plugins.

archive-plugins (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Archiv-Plugins.

auto-update? (Typ: Vielleicht-Boolescher-Ausdruck)

Ob die Musikdatenbank automatisch aktualisiert werden soll, wenn Änderungen an Dateien in music-directory festgestellt werden.

input-cache-size (Typ: Vielleicht-Zeichenkette)

Größe von MPDs Zwischenspeicherung der Eingabe.

decoders (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Decoder-Plugins.

resampler (Typ: Vielleicht-„mpd-plugin“)

Eine Konfiguration eines MPD-Resampler-Plugins.

filters (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Filter-Plugins.

outputs (Typ: Liste-von-„mpd-plugin“-oder-von-„mpd-output“)

Welche Tonausgaben MPD benutzen kann. Vorgegeben ist eine einzelne Ausgabe, die Pulseaudio benutzt.

playlist-plugins (Vorgabe: '()) (Typ: Liste-von-„mpd-plugin“)

Liste von Konfigurationen von MPD-Plugins für Wiedergabelisten (Playlists).

extra-options (Vorgabe: '()) (Typ: Assoziative-Liste)

Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Konfiguration angehängt.

Datentyp: mpd-plugin

Datentyp, der ein Plugin für mpd repräsentiert.

plugin (Typ: Vielleicht-Zeichenkette)

Plugin-Name.

name (Typ: Vielleicht-Zeichenkette)

Name.

enabled? (Typ: Vielleicht-Boolescher-Ausdruck)

Gibt an, ob das Plugin aktiviert ist oder nicht.

extra-options (Vorgabe: '()) (Typ: Assoziative-Liste)

Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Plugin-Konfiguration angehängt. Siehe die MPD plugin reference für eine Liste, welche Optionen es gibt.

Datentyp: mpd-partition

Datentyp, der eine Partition von mpd repräsentiert.

name (Typ: Zeichenkette)

Name der Partition.

extra-options (Vorgabe: '()) (Typ: Assoziative-Liste)

Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Plugin-Konfiguration angehängt. Siehe die Configuring Partitions für eine Liste, welche Optionen bei Partitionen möglich sind.

Datentyp: mpd-output

Verfügbare mpd-output-Felder sind:

name (Vorgabe: "MPD") (Typ: Zeichenkette)

Der Name der Tonausgabe.

type (Vorgabe: "pulse") (Typ: Zeichenkette)

Der Typ der Tonausgabe.

enabled? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Gibt an, ob diese Tonausgabe aktiviert sein soll, wenn MPD gestartet wird. Vorgegeben ist, alle Tonausgaben zu aktivieren. Das entspricht der Voreinstellung, wenn keine Zustandsdatei existiert; mit Zustandsdatei wird der Zustand von früher wiederhergestellt.

format (Typ: Vielleicht-Zeichenkette)

Erzwingt ein bestimmtes Tonformat für die Ausgabe. Siehe Global Audio Format für eine genauere Beschreibung.

tags? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Wenn es auf #f steht, sendet MPD keine Tags an diese Ausgabe. Dies wird nur berücksichtigt, wenn das Ausgabe-Plugin Tags empfangen kann, wie beim httpd-Ausgabe-Plugin.

always-on? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

Wenn es auf #t steht, versucht MPD, diese Tonausgabe immer offen zu lassen. Das kann bei Streaming-Servern helfen, wo man nicht will, dass die Verbindung zu allen Zuhörern abbricht, nur weil das Abspielen aus irgendeinem Grund angehalten wurde.

mixer-type (Typ: Vielleicht-Zeichenkette)

Für dieses Feld wird eine Zeichenkette akzeptiert, die das für diese Tonausgabe zu benutzende Mischpult („Mixer“) bezeichnet. Zur Wahl stehen das hardware-Mischpult, das software-Mischpult, das null-Mischpult oder kein Mischpult (none). Mit dem null-Mischpult kann die Lautstärke eingestellt werden, aber ohne Auswirkung; das kann als Trick benutzt werden, um ein externes Mischpult zu implementieren. Wenn nichts angegeben wird, wird das hardware-Mischpult benutzt, wenn es vom Gerät unterstützt wird.

replay-gain-handler (Typ: Vielleicht-Zeichenkette)

Für dieses Feld wird eine Zeichenkette akzeptiert, die die anzuwendende Wiedergabe-Verstärkung benennt. Bei software wird eine interne Lautstärkeregelung in Software verwendet, bei mixer wird die externe Hardware verwendet, die konfiguriert ist, und bei none findet auf dieser Ausgabe keine Wiedergabe-Verstärkung statt.

extra-options (Vorgabe: '()) (Typ: Assoziative-Liste)

Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Tonausgabenkonfiguration angehängt.

Das folgende Beispiel zeigt eine Konfiguration von mpd, die einige Plugins konfiguriert und eine HTTP-Audiostreaming-Tonausgabe anbietet.

(service mpd-service-type
         (mpd-configuration
           (outputs
             (list (mpd-output
                     (name "streaming")
                     (type "httpd")
                     (mixer-type 'null)
                     (extra-options
                      `((encoder . "vorbis")
                        (port    . "8080"))))))
           (decoders
             (list (mpd-plugin
                     (plugin "mikmod")
                     (enabled? #f))
                   (mpd-plugin
                     (plugin "openmpt")
                     (enabled? #t)
                     (extra-options `((repeat-count . -1)
                                      (interpolation-filter . 1))))))
           (resampler (mpd-plugin
                        (plugin "libsamplerate")
                        (extra-options `((type . 0)))))))

myMPD

myMPD ist eine für Mobilgeräte geeignete Oberfläche für MPD auf einem Webserver.

Folgendes Beispiel zeigt eine Instanz von myMPD, die auf Port 80 lauscht, wobei Albenbilder nicht zwischengespeichert werden.

(service mympd-service-type
         (mympd-configuration
          (port 80)
          (covercache-ttl 0)))
Variable: mympd-service-type

Der Diensttyp für mympd.

Datentyp: mympd-configuration

Verfügbare mympd-configuration-Felder sind:

package (Vorgabe: mympd) (Typ: dateiartig)

Das Paketobjekt von myMPD.

shepherd-requirement (Vorgabe: '()) (Typ: Liste-von-Symbolen)

Eine Liste von Symbolen, die andere Shepherd-Dienste angeben, von denen dieser Dienst abhängen soll.

user (Vorgabe: %mympd-user) (Typ: Benutzerkonto)

Das Benutzerkonto, dem der mympd-Prozess gehören soll.

Vorgegeben ist %mympd-user, was für ein System-Benutzerkonto mit Namen „mympd“ steht, das Mitglied der Benutzergruppe group ist (siehe unten).

group (Vorgabe: %mympd-group) (Typ: Benutzergruppe)

Gruppe des Besitzers des mympd-Prozesses.

Vorgegeben ist %mympd-group, was für eine System-Benutzergruppe mit Namen „mympd“ steht.

work-directory (Vorgabe: "/var/lib/mympd") (Typ: Zeichenkette)

Wo die Daten von myMPD gespeichert werden sollen.

cache-directory (Vorgabe: "/var/cache/mympd") (Typ: Zeichenkette)

Wo der Zwischenspeicher von myMPD gespeichert werden soll.

acl (Typ: Vielleicht-„mympd-ip-acl“)

Zugriffssteuerungsliste (ACL), welche Rechner auf den myMPD-Webserver zugreifen dürfen.

covercache-ttl (Vorgabe: 31) (Typ: Vielleicht-Ganze-Zahl)

Wie lange Albenbilder zwischengespeichert werden. Bei 0 werden Albenbilder nicht zwischengespeichert.

http? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

HTTP-Unterstützung.

host (Vorgabe: "[::]") (Typ: Zeichenkette)

Rechnername, auf dem gelauscht werden soll.

port (Vorgabe: 80) (Typ: Vielleicht-Zahl)

Auf welchen HTTP-Port gelauscht werden soll.

log-level (Vorgabe: 5) (Typ: Ganze-Zahl)

Wie detailliert die Protokolle sein sollen. Möglich sind Werte von 0 bis 7.

log-to (Typ: Vielleicht-Zeichenkette)

Wohin Protokolle geschickt werden. Wenn nichts angegeben wird, werden Protokolle beim lokal laufenden Syslog-Dienst unter der Syslog-Einrichtung (Facility) ‘daemon’ eingeordnet. Sie können auch einen Dateinamen angeben, zum Beispiel /var/log/mympd.log.

lualibs (Vorgabe: "all") (Typ: Vielleicht-Zeichenkette)

Siehe https://jcorporation.github.io/myMPD/scripting/#lua-standard-libraries.

uri (Typ: Vielleicht-Zeichenkette)

Eine andere URI für myMPD vorgeben. Siehe https://github.com/jcorporation/myMPD/issues/950.

script-acl (Vorgabe: (mympd-ip-acl (allow '("127.0.0.1")))) (Typ: Vielleicht-„mympd-ip-acl“)

Zugriffssteuerungsliste (ACL), welche Rechner auf die Scripting-Schnittstelle zugreifen dürfen.

ssl? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

SSL/TLS-Unterstützung.

ssl-port (Vorgabe: 443) (Typ: Vielleicht-Port)

Port, auf dem auf HTTPS gelauscht wird.

ssl-cert (Typ: Vielleicht-Zeichenkette)

Pfad zum PEM-kodierten X.509-SSL/TLS-Zertifikat (der öffentliche Schlüssel).

ssl-key (Typ: Vielleicht-Zeichenkette)

Pfad zum PEM-kodierten privaten Schlüssel für SSL/TLS.

pin-hash (Typ: Vielleicht-Zeichenkette)

Mit SHA-256 gehashte PIN, die durch myMPD vom Benutzer angefordert wird, wenn der Benutzer auf Einstellungen zugreifen möchte.

save-caches? (Typ: Vielleicht-Boolescher-Ausdruck)

Ob Zwischenspeicher erhalten werden, wenn der Dienst neu gestartet wird.

Datentyp: mympd-ip-acl

Verfügbare mympd-ip-acl-Felder sind:

allow (Vorgabe: '()) (Typ: Liste-von-Zeichenketten)

Zugelassene IP-Adressen.

deny (Vorgabe: '()) (Typ: Liste-von-Zeichenketten)

Verbotene IP-Adressen.


Nächste: Virtualisierungsdienste, Vorige: Dienste zur Stromverbrauchsverwaltung, Nach oben: Dienste   [Inhalt][Index]