From 4338e80e5e4486f0c10b19b6603db6b2aa5f1f7d Mon Sep 17 00:00:00 2001 From: Daniel Bohrer <Daniel Bohrer@stratum0.org/mediawiki/> Date: Sun, 14 Oct 2012 22:17:18 +0000 Subject: [PATCH] =?utf8?q?Manual=20f=C3=BCr=20PulseAudio-Streaming=20(Serv?= =?utf8?q?er=20und=20Clients)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- PulseAudio.mw | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 PulseAudio.mw diff --git a/PulseAudio.mw b/PulseAudio.mw new file mode 100644 index 000000000..2487dcf0a --- /dev/null +++ b/PulseAudio.mw @@ -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]] -- 2.20.1