ubuntuusers.de

Jack, PulseAudio, recordMyDesktop, Java, Ubuntu 9.10

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

peter_pan

Anmeldungsdatum:
23. August 2006

Beiträge: 39

Hi! Nach stundenlangem Probieren habe ich es jetzt geschafft mit recordMyDesktop den Ton von Anwendungen direkt aufzunehmen (nicht über Mikrophon). Dazu wird der Jack-Soundserver zusammen mit PulseAudio genutzt. Wenn man OpenJDK statt Sun-Java nutzt, lassen sich damit auch Java-Anwendung inkl. Ton abfilmen. Da ich im Laufe der Zeit auf sehr viele ähnliche Beiträge gestoßen bin, dachte ich, dass es vielleicht jemanden interessieren könnte und poste deshalb diese kleine "Anleitung". Vorab:

  • Ab Lucid wird wahrscheinlich alles besser, wer also noch warten kann oder sich die Beta installieren möchte hat u.U. weniger Arbeit.

  • Die Schritte wurden unter Ubuntu 9.10 durchgeführt.

  • Die Anleitung ist nicht sehr detailliert. Rückfragen einfach posten.

  • Ich habe mich im Wesentlichen an diesen beiden Anleitungen orientiert - für den Sinn der einzelnen Befehle siehe dort: 1,2

1. Jack und GUI installieren

sudo apt-get install jackd qjackctl

2. Jack einrichten

sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
echo "autospawn = no" > ~/.pulse/client.conf
pkill pulseaudio
sudo nano /etc/default/jackd  #(Start_Daemon=yes, username anpassen)

3. Jack beibringen mit Pulseaudio zusammen zu arbeiten. Sonst muss jede Anwendung ein Jack-Plugin besitzen, damit man was hört. Downloade den PulseAudio 0.9.19 Source: http://pulseaudio.org/ oder direkt.

sudo apt-get build-dep pulseaudio
sudo apt-get install libjack-dev
cd ~/pulseaudio-0.9.19
./configure
cd src
make module-jack-source.la
make module-jack-sink.la
sudo cp .libs/module-jack-source.so /usr/lib/pulse-0.9.19/modules/module-jack-source.so 
sudo cp .libs/module-jack-sink.so /usr/lib/pulse-0.9.19/modules/module-jack-sink.so
cp /etc/pulse/default.pa ~/.pulse/pulsejack.pa

Die beiden Zeilen nicht auskommentierten Zeilen in ~/.pulse/pulsejack.pa an der entsprechenden stelle hinzufügen:

### Load audio drivers statically (it is probably better to not load
### these drivers manually, but instead use module-hal-detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
load-module module-jack-source
load-module module-jack-sink

4. System neustarten, evtl. den Jack-Daemon neu starten:

/etc/init.d/jackd start

qjackctl starten und folgendes einstellen:

  • Registrierkarte Einstellungen → Timeout: 5000ms

  • Registrierkarte Optionen: Skript-Steuerung

    • Beim Start: pulseaudio -k

    • Nach dem Start: pulseaudio -DnF ~/.pulse/pulsejack.pa

    • Beim Herunterfahren: pulseaudio -k

    • Nach dem Herunterfahren: killall jackd; pulse-session

5. System neustarten, evtl. den Jack-Daemon neu starten qjackctl starten. Unter "Verbinden" sollten jetzt "PulseAudio Jack" einträge sein. Folgende Verbindungen setzten (hab ich nur trial-and-error-mäßig probiert):

PulseAudio JACK Sink front-left <-> system playback_1 
PulseAudio JACK Sink front-right <-> system playback_2
system capture_1 <-> PulseAudio JACK Source front-left
system capture_2 <-> PulseAudio JACK Source front-right
PulseAudio JACK Sink front-left <->  PulseAudio JACK Source front-left
PulseAudio JACK Sink front-right <-> PulseAudio JACK Source front-right
system capture_1 <-> system capture_1 
system capture_2 <-> system capture_2

6. gtk-recordmydesktop starten und als Audiogerät "pulse" einstellen (nicht Jack aktivieren!).

7. Ggf: Java-Anwendungen mit OpenJDK starten, nicht mit Sun-Java: Soweit ich weiß benutzt OpenJDK inzwischen PulseAudio, Sun-Java aber nicht.

Nach einem Neustart des Systems ist manchmal ein Neustart des Jack-Daemons notwendig, bis alles läuft..

Antworten |