Manual für PulseAudio-Streaming (Server und Clients)
authorDaniel Bohrer <Daniel Bohrer@stratum0.org/mediawiki/>
Sun, 14 Oct 2012 22:17:18 +0000 (22:17 +0000)
committerDaniel Bohrer <Daniel Bohrer@stratum0.org/mediawiki/>
Sun, 14 Oct 2012 22:17:18 +0000 (22:17 +0000)
PulseAudio.mw [new file with mode: 0644]

diff --git a/PulseAudio.mw b/PulseAudio.mw
new file mode 100644 (file)
index 0000000..2487dcf
--- /dev/null
@@ -0,0 +1,103 @@
+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 ==
+Aud dem Server in <tt>/etc/pulse/default.pa</tt> müssen diese zwei Zeilen aktiviert werden:
+ load-module module-native-protocol-tcp auth-anonymous=1
+ load-module module-zeroconf-publish
+
+Dann entweder neu einloggen (der PulseAudio-Server ist ja immer an einen Benutzer-Session gekoppelt), oder PulseAudio neustarten: <tt>pulseaudio --kill && pulseaudio --start</tt>
+
+Zu beachten ist, dass unter Debian/Ubuntu das Modul <tt>pulseaudio-module-zeroconf</tt> installiert sein muss.
+
+== Client-Seite ==
+Um Audio-Streams über die Spacekiste oder die minibox wiederzugeben, gibt es mehrere Wege.
+
+== <tt>pacmd</tt> ==
+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 <tt>pacmd list-sink-inputs</tt> den Index des Streams, den man umleiten will. Die Ausgabe sieht etwa wie folgende aus:
+ >>> 1 sink input(s) available.
+ index: '''22'''
+       driver: <protocol-native.c>
+       flags: 
+       state: RUNNING
+       sink: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
+       volume: 0:  64% 1:  64%
+               0: -11.47 dB 1: -11.47 dB
+               balance 0.00
+       muted: no
+       current latency: 79.66 ms
+       requested latency: 210.00 ms
+       sample spec: float32le 2ch 44100Hz
+       channel map: front-left,front-right
+                    Stereo
+       resample method: copy
+       module: 7
+       client: 174 <MPlayer>
+       properties:
+               media.name = "audio stream"
+               application.name = "MPlayer"
+               native-protocol.peer = "UNIX socket client"
+               native-protocol.version = "26"
+               application.process.id = "28609"
+               application.process.user = "rohieb"
+               application.process.host = "r2d2"
+               application.process.binary = "mplayer"
+               application.language = "C"
+               window.x11.display = ":0"
+               application.process.machine_id = "3d50ca96e3bbb8de38d0d46a00000298"
+               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 <tt>pacmd list-sinks</tt> herausfinden (einfach nach den menschenlesbaren Bezeichnungen suchen…). Beispiel:
+
+ index: '''10'''
+       name: <tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo>
+       driver: <module-tunnel.c>
+       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"
+
+So kann man jetzt PulseAudio anweisen, den entsprechenden Stream umzuleiten:
+ pacmd move-sink-input 22 10
+
+==== 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
+
+Schon laufende Audio-Streams müssen mit der obigen Methode einzeln verschoben werden.
+
+== pavucontrol ==
+Mit der Lautstärkeregelung auf Gnome-Systemen kann man das ganze auch per Maus erledigen (siehe Bilder). Die Default Sink kann man auf dem Tab ''Output Devices'' über den Button ''Set as fallback'' festsetzen.
+<gallery widths="400" heights="200">
+Datei:PulseAudio Volume Control Playback Tab.png|Einzelne Streams umleiten
+Datei:PulseAudio Volume Control Output Devices Tab.png|Default Sink setzen
+</gallery>
+[[Kategorie:Infrastruktur]]
This page took 0.03373 seconds and 4 git commands to generate.