X-Git-Url: https://git.rohieb.name/stratum0-wiki.git/blobdiff_plain/9adc90e86ee165988c1f26fdee0111ad3a634dce..d17e4691107f4089b479c55532609a8f7165ef00:/PulseAudio.mw
diff --git a/PulseAudio.mw b/PulseAudio.mw
index fca532e37..0f870a3a2 100644
--- a/PulseAudio.mw
+++ b/PulseAudio.mw
@@ -1,3 +1,5 @@
+{{veraltet}}
+
Sowohl die [[minibox]] im Sofaraum als auch die [[Spacekiste]] im Frickelraum nehmen PulseAudio-Streams über Port 4713 aus dem lokalen Netzwerk an, und announcen ihren PulseAudio-Sinks über Zeroconf. Das macht es möglich, über beliebige Clients z.B. Musik zu streamen.
== Server-Seite ==
@@ -9,11 +11,19 @@ Dann entweder neu einloggen (der PulseAudio-Server ist ja immer an einen Benutze
Zu beachten ist, dass unter Debian/Ubuntu das Modul pulseaudio-module-zeroconf installiert sein muss.
+=== Sinks ===
+Die Sinks auf den beiden Rechnern heiÃen (sofern Multicast DNS und Auto-Discovery via Zeroconf (siehe [[#Client-Seite|unten]]) auf dem Client aktiviert ist):
+* tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo
+* tunnel.minibox.local.alsa_output.0.iec958-stereo (Digital-Ausgang, aber meist nicht angeschlossen)
+* tunnel.spacekiste.local.alsa_output.pci-0000_00_1b.0.analog-stereo
+
== Client-Seite ==
-Um Audio-Streams über die Spacekiste oder die minibox wiederzugeben, gibt es mehrere Wege.
+Um Audio-Streams über die Spacekiste oder die minibox wiederzugeben, gibt es mehrere Wege. Um den lokalen PulseAudio-Server anzuweisen, Audio-Streams umzuleiten, muss das Modul module-zeroconf-discover aktiviert sein (unter Debian/Ubuntu/Fedora im Paket pulseaudio-module-zeroconf enthalten). Dazu muss /etc/pulse/default.pa die folgende Zeile enthalten:
+ load-module module-zeroconf-discover
+Nach Anpassen der Datei muss PulseAudio neu gestartet werden: pulseaudio --kill && pulseaudio --start
=== pacmd ===
-Ein nützliches Konsolen-Programm für alles mögliche.
+Ein nützliches Konsolen-Programm für alles mögliche.
==== Einzelne Audio-Streams umleiten ====
Man startet die Wiedergabe auf dem Client und sucht sich dann mit pacmd list-sink-inputs den Index des Streams, den man umleiten will. Die Ausgabe sieht etwa wie folgende aus:
@@ -50,47 +60,14 @@ Man startet die Wiedergabe auf dem Client und sucht sich dann mit pacmd list
application.process.session_id = "3d50ca96e3bbb8de38d0d46a00000298-1349808857.893717-1874973741"
module-stream-restore.id = "sink-input-by-application-name:MPlayer"
-AuÃerdem braucht man den Index der Sink auf dem Server. Diesen kann man mit pacmd list-sinks herausfinden (einfach nach den menschenlesbaren Bezeichnungen suchenâ¦). Beispiel:
-
- index: '''10'''
- name:
- driver:
- flags: NETWORK HW_MUTE_CTRL HW_VOLUME_CTRL LATENCY
- state: SUSPENDED
- suspend cause: IDLE
- priority: 0
- volume: 0: 75% 1: 75%
- balance 0.00
- base volume: 100%
- volume steps: 65537
- muted: no
- current latency: 0.00 ms
- max request: 0 KiB
- max rewind: 0 KiB
- monitor source: 16
- sample spec: s16le 2ch 44100Hz
- channel map: front-left,front-right
- Stereo
- used by: 0
- linked by: 0
- fixed latency: 250.00 ms
- module: 39
- properties:
- device.description = "Built-in Audio Analog Stereo on pulse@minibox"
- tunnel.remote.server = "[192.168.178.108]:4713"
- tunnel.remote.sink = "alsa_output.pci-0000_00_08.0.analog-stereo"
- device.icon_name = "audio-card"
- tunnel.remote_version = "26"
- tunnel.remote.user = "pulse"
- tunnel.remote.fqdn = "minibox"
- tunnel.remote.description = "Built-in Audio Analog Stereo"
+AuÃerdem braucht man den Index oder den Namen der Sink auf dem Server (siehe [[#Sinks|oben]], den Index kann man zur Not auch mit pacmd list-sinks herausfinden).
So kann man jetzt PulseAudio anweisen, den entsprechenden Stream umzuleiten:
- pacmd move-sink-input 22 10
+ pacmd move-sink-input 22 tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo
==== Alle Audio-Streams umleiten ====
Um jegliche Audio-Ausgabe vom Client auf den Server umzuleiten, sucht man wie oben den Sink-Index des Servers heraus. Diesen setzt man dann einfach als Standard-Sink:
- pacmd set-default-sink 10
+ pacmd set-default-sink tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo
Schon laufende Audio-Streams müssen mit der obigen Methode einzeln verschoben werden.
@@ -101,15 +78,22 @@ Datei:PulseAudio Volume Control Playback Tab.png|Einzelne Streams umleiten
Datei:PulseAudio Volume Control Output Devices Tab.png|Default Sink setzen
-Hierfür muss das Modul module-zeroconf-discover aktiviert sein, entweder in /etc/pulse/default.pa die folgende Zeile hinzufügen:
- load-module module-zeroconf-discover
-und PulseAudio neustarten: pulseaudio --kill && pulseaudio --start
-
=== Direkte Verbindung ohne Umweg über den lokalen PulseAudio-Server ===
Man kann einzelne Anwendungen auch anweisen, sich direkt mit dem Server zu verbinden, ohne Umweg über den lokalen PulseAudio-Server auf dem Client-System. Dazu setzt man die Umgebungsvariable PULSE_SERVER auf den Namen oder die IP-Adresse des Servers:
PULSE_SERVER=minibox.local mplayer schönemusik.mp3
-Das hat prinzipiell den Vorteil, dass der lokale PulseAudio-Server nicht noch mehr Latenz zum Signal hinzufügt und/oder CPU-Last erzeugt.
+Das hat prinzipiell den Vorteil, dass kein lokaler PulseAudio-Server laufen muss (auch das Modul module-zeroconf-discover muss nicht wie oben geladen sein). AuÃerdem fügt ein lokaler PulseAudio-Server tendenziell eher mehr Latenz zum Signal hinzu und verbraucht CPU.
+
+=== Wiedergabe im ganzen Space (buggy, CPU-lastig) ===
+Pulse hat theoretisch die Möglichkeit, mehrere Sinks gleichzeitig zu bespielen. Dies macht das Modul module-combine-sink. Dabei werden ein oder mehrere Sinks unter einem neuen, virtuellen Sink neu zusammengefasst.
+
+ pacmd load-module module-combine-sink sink_name=space slaves=tunnel.spacekiste.local.alsa_output.pci-0000_00_1b.0.analog-stereo,tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo
+
+Hier habe ich den neuen virtuellen Sink space genannt, die Namen der Slave-Sinks werden mit Kommata getrennt.
+Danach soll der virtuelle Sink an den üblichen, verdächtigen Stellen auftauchen (auch im pavucontrol), habe es so aber noch nicht zum Laufen bekommen.
+Eine direktere Möglichkeit zur Wiedergabe ist
+ mplayer -ao pulse::space nyancat.opus
+Hat aber Audioglitches trotz vergröÃerter Buffer, läuft nach einigen Sekunden aus der Synchronisation und verursacht derzeit 17% CPU-Last.
[[Kategorie:Infrastruktur]]
[[Kategorie:Dokumentation]]