PulseAudio: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(+Direkte Verbindung ohne Umweg über den lokalen PulseAudio-Server)
K (pavucontrol braucht module-zeroconf-discover, Struktur gefixt)
Zeile 13: Zeile 13:
 
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.
  
== <tt>pacmd</tt> ==
+
=== <tt>pacmd</tt> ===
 
Ein nützliches Konsolen-Programm für alles mögliche.
 
Ein nützliches Konsolen-Programm für alles mögliche.
  
Zeile 95: Zeile 95:
 
Schon laufende Audio-Streams müssen mit der obigen Methode einzeln verschoben werden.
 
Schon laufende Audio-Streams müssen mit der obigen Methode einzeln verschoben werden.
  
== pavucontrol ==
+
=== 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.
 
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">
 
<gallery widths="400" heights="200">
Zeile 102: Zeile 102:
 
</gallery>
 
</gallery>
  
== Direkte Verbindung ohne Umweg über den lokalen PulseAudio-Server ==
+
Hierfür muss das Modul <tt>module-zeroconf-discover</tt> aktiviert sein, entweder in <tt>/etc/pulse/default.pa</tt> die folgende Zeile hinzufügen:
 +
load-module module-zeroconf-discover
 +
und PulseAudio neustarten: <tt>pulseaudio --kill && pulseaudio --start</tt>
 +
 
 +
=== 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 <tt>PULSE_SERVER</tt> auf den Namen oder die IP-Adresse des Servers:
 
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:
 
  PULSE_SERVER=minibox.local mplayer schönemusik.mp3
 
  PULSE_SERVER=minibox.local mplayer schönemusik.mp3

Version vom 14. Oktober 2012, 23:30 Uhr

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 /etc/pulse/default.pa 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: pulseaudio --kill && pulseaudio --start

Zu beachten ist, dass unter Debian/Ubuntu das Modul pulseaudio-module-zeroconf installiert sein muss.

Client-Seite

Um Audio-Streams über die Spacekiste oder die minibox wiederzugeben, gibt es mehrere Wege.

pacmd

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:

>>> 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 pacmd list-sinks 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.

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.