+/* Direkte Verbindung ohne Umweg über den lokalen PulseAudio-Server */
[stratum0-wiki.git] / PulseAudio.mw
1 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.
2
3 == Server-Seite ==
4 Aud dem Server in <tt>/etc/pulse/default.pa</tt> müssen diese zwei Zeilen aktiviert werden:
5 load-module module-native-protocol-tcp auth-anonymous=1
6 load-module module-zeroconf-publish
7
8 Dann entweder neu einloggen (der PulseAudio-Server ist ja immer an einen Benutzer-Session gekoppelt), oder PulseAudio neustarten: <tt>pulseaudio --kill && pulseaudio --start</tt>
9
10 Zu beachten ist, dass unter Debian/Ubuntu das Modul <tt>pulseaudio-module-zeroconf</tt> installiert sein muss.
11
12 == Client-Seite ==
13 Um Audio-Streams über die Spacekiste oder die minibox wiederzugeben, gibt es mehrere Wege.
14
15 == <tt>pacmd</tt> ==
16 Ein nützliches Konsolen-Programm für alles mögliche.
17
18 ==== Einzelne Audio-Streams umleiten ====
19 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:
20 >>> 1 sink input(s) available.
21 index: '''22'''
22 driver: <protocol-native.c>
23 flags:
24 state: RUNNING
25 sink: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
26 volume: 0: 64% 1: 64%
27 0: -11.47 dB 1: -11.47 dB
28 balance 0.00
29 muted: no
30 current latency: 79.66 ms
31 requested latency: 210.00 ms
32 sample spec: float32le 2ch 44100Hz
33 channel map: front-left,front-right
34 Stereo
35 resample method: copy
36 module: 7
37 client: 174 <MPlayer>
38 properties:
39 media.name = "audio stream"
40 application.name = "MPlayer"
41 native-protocol.peer = "UNIX socket client"
42 native-protocol.version = "26"
43 application.process.id = "28609"
44 application.process.user = "rohieb"
45 application.process.host = "r2d2"
46 application.process.binary = "mplayer"
47 application.language = "C"
48 window.x11.display = ":0"
49 application.process.machine_id = "3d50ca96e3bbb8de38d0d46a00000298"
50 application.process.session_id = "3d50ca96e3bbb8de38d0d46a00000298-1349808857.893717-1874973741"
51 module-stream-restore.id = "sink-input-by-application-name:MPlayer"
52
53 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:
54
55 index: '''10'''
56 name: <tunnel.minibox.local.alsa_output.pci-0000_00_08.0.analog-stereo>
57 driver: <module-tunnel.c>
58 flags: NETWORK HW_MUTE_CTRL HW_VOLUME_CTRL LATENCY
59 state: SUSPENDED
60 suspend cause: IDLE
61 priority: 0
62 volume: 0: 75% 1: 75%
63 balance 0.00
64 base volume: 100%
65 volume steps: 65537
66 muted: no
67 current latency: 0.00 ms
68 max request: 0 KiB
69 max rewind: 0 KiB
70 monitor source: 16
71 sample spec: s16le 2ch 44100Hz
72 channel map: front-left,front-right
73 Stereo
74 used by: 0
75 linked by: 0
76 fixed latency: 250.00 ms
77 module: 39
78 properties:
79 device.description = "Built-in Audio Analog Stereo on pulse@minibox"
80 tunnel.remote.server = "[192.168.178.108]:4713"
81 tunnel.remote.sink = "alsa_output.pci-0000_00_08.0.analog-stereo"
82 device.icon_name = "audio-card"
83 tunnel.remote_version = "26"
84 tunnel.remote.user = "pulse"
85 tunnel.remote.fqdn = "minibox"
86 tunnel.remote.description = "Built-in Audio Analog Stereo"
87
88 So kann man jetzt PulseAudio anweisen, den entsprechenden Stream umzuleiten:
89 pacmd move-sink-input 22 10
90
91 ==== Alle Audio-Streams umleiten ====
92 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:
93 pacmd set-default-sink 10
94
95 Schon laufende Audio-Streams müssen mit der obigen Methode einzeln verschoben werden.
96
97 == pavucontrol ==
98 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.
99 <gallery widths="400" heights="200">
100 Datei:PulseAudio Volume Control Playback Tab.png|Einzelne Streams umleiten
101 Datei:PulseAudio Volume Control Output Devices Tab.png|Default Sink setzen
102 </gallery>
103
104 == Direkte Verbindung ohne Umweg über den lokalen PulseAudio-Server ==
105 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 <tt>PULSE_SERVER</tt> auf den Namen oder die IP-Adresse des Servers:
106 PULSE_SERVER=minibox.local mplayer schönemusik.mp3
107
108 Das hat prinzipiell den Vorteil, dass der lokale PulseAudio-Server nicht noch mehr Latenz zum Signal hinzufügt und/oder CPU-Last erzeugt.
109
110 [[Kategorie:Infrastruktur]]
111 [[Kategorie:Dokumentation]]
This page took 0.04637 seconds and 5 git commands to generate.