Ich versuche seit geraumer Zeit die Soundausgabe auf meinem Archlinux-Rechner in den Griff zu bekommen aber irgendwas klappte immer nicht so wie es sollte. Entweder hatte ich keine Soundausgabe oder ich konnte immer nur ein Programm zur Zeit Sound ausgeben lassen. Der Wunsch Midifiles und den Video Disk Recorder(yavdr mit softhddevice) als TV Applikation auf dem Desktop zu benutzen machte die Sache nicht gerade einfacher.
Nachdem ich mich ein wenig intensiver mit der Sache beschäftigt hatte gelang es mir zumindest mit Hilfe vom Jack-Server und Fluidsynth die Midifiles wiederzugeben, leider funktionierte aber eine synchrone Ausgabe mit anderen Quellen nicht.
Das Problem
Also installierte ich Pulseaudio, jetzt funktionierte die synchrone Ausgabe von Midifiles und anderen Wiedergabeprogrammen einwandfrei. Nur der vdr wollte keinen Mucks von sich geben.
Nach ein wenig Recherche und beobachten der Debugausgaben des vdr stellte sich heraus, daß Pulseaudio immer nur von einem User zur Zeit benutzt werden kann, da der vdr aber unter einem anderen user läuft (da er normalerweise nicht für den Desktopbetrieb gedacht ist) klappte natürlich die Soundausgabe nicht und man konnte in der Debaugausgabe sehen, daß immer die Fehlermeldung „Resource belegt“ ausgegeben wurde, wenn der vdr versuchte seinen Sound über Pulseaudio auszugeben.
In den Manuals zu Pulseaudio steht man könne den pulseaudio Server im systemweiten Modus laufen lassen, allerdings wird das nicht empfohlen, grummel…
Dann besteht noch die Möglichkeit auf den pulseaudio Server per TCP zuzugreifen, nur leider wurde ich aus der englischen Pulseaudio Dokumentation nicht schlau.
Die Lösung
Nach einigem Suchen fand ich dann diese Webseite mithilfe dessen was dort beschrieben wird ist es mir dann gelungen auch den vdr zur Soundausgabe zu bewegen, allerdings muß man es etwas anders angehen als dort beschrieben, da man sich nicht als user vdr einloggen kann.
Man verfährt folgendermaßen, man muß das Ganze auf root Ebene durchführen, alsosudo su
danncp /etc/pulse/default.pa /home/<user>/.pulse/
Da wir uns ja als root eingeloggt haben müssen noch die Dateirechte an den Desktopuser angepasst werden.chown <user>:users /home/<user>/.pulse/default.pa
Da im Verzeichnis „/home/vdr“ vermutlich noch kein Verzeichnis .pulse liegt müssen wir es anlegenmkdir /home/vdr/.pulse
und die Rechte anpassenchown vdr:vdr /home/vdr/.pulse
dann erstellt man wie beschrieben die Datei client.confecho "default-server = 127.0.0.1" > /home/vdr/.pulse/client.conf
Die Dateirechte müssen hier ebenfalls angepasst werdenchown vdr:vdr /home/vdr/.pulse/client.conf
Das war’s im Großen und Ganzen, dann startet man den pulseaudio Server mittelspulseaudio -k
pulseaudio -D
wieder neu und die Tonausgabe sollte auch beim vdr funktionieren.
Hört man nur ein knistern und knacken, geht man im vdr in die Plugin Einstellungen und wählt softhddevice aus, dort schaltet man die Option „Pass-Through-Standard:“ aus.
Ich sollte noch erwähnen, daß man in der /etc/vdr/conf.d/50-softhddevice.conf noch folgendes eintragen sollte, damit’s mit pulseaudio auf jeden Fall funktioniert:-a pulse
Zumindest bei mir hat diese Vorgehensweise mit einem laufenden Jack-Server und Pulseaudio funktioniert.
vdr vom Desktop starten
Und wer, wie ich, gerne seinen vdr per Doppeklick vom Desktop starten möchte kann das folgendermaßen machen.
Dazu habe ich mir zwei Desktopdateien mit folgendem Inhalt angelegt:
VDR „einschalten“[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=presence_online
Name=vdr_attach
Name[de_DE]=VDR Ein
Exec=/home/<user>/scripts/vdr/vdr_start_stop start + atta
Comment[de_DE]=vdr attachen
VDR „ausschalten“[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=presence_offline
Name=vdr_dettach
Name[de_DE]=VDR aus
Exec=/home/<user>/scripts/vdr/vdr_start_stop stop - deta
Comment[de_DE]=vdr dettachen
StartupNotify=true
Man kopiert diese beiden Dateien in den Schreibtisch-Ordner, dann sollten die beiden Icons auf dem Desktop erscheinen (sofern man einen Desktop benutzt, der Icons unterstützt)
Die Icons „presence_online/_offline.png“ sollten unter /usr/share/icons/hicolor/ zu finden sein.
Allerdings braucht man noch ein Script zum starten und stoppen des vdr
vdr_start_stop#!/bin/sh
sudo systemctl $1 vdr
xhost $2
svdrpsend plug softhddevice $3
Das Script muß noch mit chmod +x vdr_start_stop
ausführbar gemacht werden.
Das Ganze funktioniert so unter Archlinux, mit entsprechenden Anpassungen sicher auch auf anderen Linuxderivaten.
Auf dem Bild kann man es zwar nicht hören aber alle drei Quellen(vdr, youtube, rosegarden) waren simultan hörbar.;-)