Nächste: Persönliche Maildienste, Vorige: Persönliche Schriftarten-Dienste, Nach oben: Persönliche Dienste [Inhalt][Index]
Das Modul (gnu home services sound)
stellt Dienste bereit, die mit
Sound-Unterstützung zu tun haben.
Mit den folgenden Diensten wird der
PulseAudio-Audioserver dynamisch
umkonfiguriert: Damit können Sie eine Audioausgabe als Broadcast an andere
Geräte über das Netzwerk ausstrahlen. Dazu wird das Protokoll RTP (Real-time Transport Protocol) benutzt. Ebenso kann über RTP empfangener Ton
wiedergegeben werden. Sobald Sie
home-pulseaudio-rtp-sink-service-type
als Persönlichen Dienst
eingerichtet haben, können Sie mit folgendem Befehl eine
Audiobroadcasting-Ausgabe starten:
herd start pulseaudio-rtp-sink
Führen Sie dann ein PulseAudio unterstützendes Mischprogramm wie
pavucontrol
oder pulsemixer
aus (beide sind in gleichnamigen
Paketen zu finden), um zu steuern, welche Audio-Streams an das RTP-Ziel
geschickt werden.
Nach der Vorgabeeinstellung wird Audio an eine Multicast-Adresse geschickt, so dass jedes Gerät im LAN (Local Area Network) es empfängt und abspielen kann. Doch dafür Multicast zu benutzen, lastet das Netzwerk aus und verschlechtert es, deswegen ist es Ihnen womöglich lieber, Audio an ein bestimmtes Netzwerkgerät zu senden. Die eine Möglichkeit ist, die IP-Adresse des Zielgeräts beim Starten des Dienstes mitanzugeben:
herd start pulseaudio-rtp-sink 192.168.1.42
Die andere Möglichkeit ist, die zu benutzende IP-Adresse in Ihrer Persönlichen Konfiguration als Standard einzutragen:
(service home-pulseaudio-rtp-sink-service-type
"192.168.1.42")
Auf dem Netzwerkgerät, das den RTP-Stream empfangen und abspielen soll,
können Sie home-pulseaudio-rtp-source-service-type
wie hier benutzen:
Und so wird das Empfangsmodul für PulseAudio gestartet:
herd start pulseaudio-rtp-source
Auch hier ist vorgegeben, die Multicast-Adresse zu verwenden. Wenn Sie stattdessen auf direkt eingehende Verbindungen lauschen lassen möchten, führen Sie Folgendes aus:
(service home-pulseaudio-rtp-source-service-type
"0.0.0.0")
Es folgt die Referenz dieser Dienste.
Mit diesem Diensttyp senden bzw. empfangen Sie Audio-Streams über RTP (Real-time Transport Protocol).
Als Wert wird eine IP-Adresse zugewiesen (als Zeichenkette), an die der
Audio-Stream gesendet bzw. von der er empfangen wird. Vorgegeben ist,
Audio an die bzw. von der Multicast-Adresse
%pulseaudio-rtp-multicast-address
zu senden bzw. zu empfangen.
Ein solcher Dienst definiert einen Shepherd-Dienst:
pulseaudio-rtp-sink
bzw. pulseaudio-rtp-source
. Der Dienst
wird nicht automatisch gestartet; Sie müssen ihn manuell starten,
wenn Sie ihn laufen lassen möchten, wie in diesem Beispiel:
herd start pulseaudio-rtp-sink
Wenn Sie den Shepherd-Dienst stoppen, endet das Broadcasting.
Dies ist die Multicast-Adresse, die nach Vorgabe von den obigen zwei Diensten benutzt wird.
PipeWire stellt einen Dienst für die Ein- und Ausgabe von Audio und Video bereit, der sich durch eine geringe Latenz und graphenbasierte Verarbeitung auszeichnet. Zusätzlich zum eigenen Protokoll kann PipeWire sowohl JACK als auch PulseAudio bedienen.
Zwar kümmert sich PipeWire um die Medienverarbeitung und stellt die API
bereit, doch kennt es nicht selbst die Geräte wie z.B. die
Soundkarten. Auch weiß es nicht, wie Sie Anwendungen, Hardware und Filter
zur Medienverarbeitung verbinden möchten. Stattdessen übernimmt das bei
PipeWire ein Programm zur Sitzungsverwaltung. Mit diesem geben Sie all
diese Beziehungen an. Obwohl Sie zur Sitzungsverwaltung ein Programm Ihrer
Wahl einsetzen könnten, ist die Referenzimplementierung
WirePlumber des
PipeWire-Projekts für die meisten Leute die richtige Wahl, deswegen wird er
im home-pipewire-service-type
benutzt.
PipeWire kann PulseAudio ersetzen, indem Sie enable-pulseaudio?
in
home-pipewire-configuration
auf #t
setzen, damit noch auf das
bisherige PulseAudio ausgerichtete Clients PipeWire ohne weitere
Konfiguration benutzen können.
Außerdem können sich JACK-Clients mit PipeWire verbinden. Dazu verwenden Sie
das mit PipeWire mitgelieferte Programm pw-jack
. Stellen Sie dem
Befehl einfach pw-jack
voran, wenn Sie ihn ausführen, dann sollten
die Audio-Daten über PipeWire laufen:
pw-jack mpv -ao=jack sound-file.wav
Mehr Informationen zur PulseAudio-Emulation finden Sie auf https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio bzw. für JACK auf https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-JACK.
Weil PipeWire seine Dienste nicht bei Bedarf über dbus
startet (wie
bei PulseAudio), werden mit home-pipewire-service-type
die Dienste
über Shepherd bei der Anmeldung gestartet. Dadurch werden die Dienste
pipewire
, wireplumber
sowie, wenn die Konfiguration es
vorgibt, pipewire-pulseaudio
bereitgestellt. Siehe Benutzer-Daemons verwalten.
Hiermit wird die Dienstdefinition für pipewire
zur Verfügung
gestellt, das bei der Anmeldung gestartet wird. Sein Wert ist ein
home-pipewire-configuration
-Objekt.
Um den Dienst zu starten, tragen Sie ihn im service
-Feld Ihrer
home-environment
-Deklaration ein, etwa so:
Verfügbare home-pipewire-configuration
-Felder sind:
pipewire
(Vorgabe: pipewire
) (Typ: dateiartig)Das zu benutzende PipeWire-Paket.
wireplumber
(Vorgabe: wireplumber
) (Typ: dateiartig)Das zu benutzende WirePlumber-Paket.
enable-pulseaudio?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Wenn es auf wahr gesetzt ist, wird PipeWires Emulation für PulseAudio aktiviert, so dass Clients für PulseAudio transparent PipeWire dafür nutzen können.
Nächste: Persönliche Maildienste, Vorige: Persönliche Schriftarten-Dienste, Nach oben: Persönliche Dienste [Inhalt][Index]