Funktionen einer Anwendung mit Worten zu beschreiben ist manchmal gar nicht so leicht – meistens muss dann ein Screenshot her. Reicht das Standbild einmal nicht aus, übernimmt xvidcap die Regie.
deskTOPia
Wie Ihr Linux-Desktop aussieht, bestimmen allein Sie. Mit deskTOPia nehmen wir Sie regelmäßig mit auf die Reise ins Land der Windowmanager und Desktop-Umgebungen, stellen Nützliches und Farbenfrohes, Hingucker und hübsches Spielzeug vor.
Wer zur Demonstration oder für ein Schulungsvideo das Geschehen auf dem Desktop als Film aufnehmen will, hat es nicht leicht: Zwar buhlen mehrere Dutzend Screenshot-Programme um die Gunst dokumentationsfreudiger Anwender, doch keines davon kennt sich im Filmgeschäft aus. Ein Spezialist für diese Aufgabe ist xvidcap[1] von Rasca Gmelch, das inzwischen Karl H. Beckers als Programmierer betreut und weiterentwickelt. Es erzeugt Grafik- oder MPEG-Dateien von einem frei definierbaren Bereich des Desktops und eignet sich damit bestens, um den Weg durch verschachtelte Menüs zu demonstrieren.
Frischgebackener Regisseur
Vor dem ersten Einsatz als Aufnahmeleiter steht die Installation des praktischen Tools an. Gut haben es alle, bei denen sich das RPM- oder Debian-Paket von der xvidcap-Homepage oder unserer Heft-CD einspielen lässt: Das vom Entwickler bereitgestellte RPM-Paket arbeitete hier unter anderem mit Suse Linux 9.0 und Red Hat 9.0 zusammen. Für Debian gibt es gleich zwei Päckchen: Eines für die stabile Version namens Woody und ein weiteres für Debian Testing, auch bekannt als Sarge.
Alle anderen kompilieren xvidcap selbst, wofür zumindest die Entwicklerpakete der libpng, der libjpeg und von XFree86 auf dem System installiert sein müssen. Der altbekannte Dreisatz ./configure ; make ; su -c make install übersetzt danach xvidcap und installiert es in die Verzeichnisse unterhalb von /usr/local. Da dort nur root Schreibrechte hat, verschaffen Sie sich mit su -c (c für command=Befehl) für den make-install-Aufruf kurzzeitig Administratorrechte.
Um Videos zu erstellen, nutzt xvidcap das Programm ffmpeg[2]. Ist es nicht auf dem System vorhanden, erhalten Sie ein xvidcap ohne Videounterstützung, das nur Einzelbilder aufnimmt. Falls der Distributor kein ffmpeg-Paket mitliefert, nutzen Selbstkompilierer einfach die ffmpeg-Version, die der Videokünstler selbst mitbringt: Dazu hängen Sie entweder den Parameter --with-forced-embedded-ffmpeg an den ./configure-Befehl an, um ein xvidcap mit eingebetteter (embedded) ffmpeg-Funktionalität zu erhalten, oder Sie wechseln, bevor Sie xvidcap übersetzen, ins Unterverzeichnis ffmpeg. Mit der dort aufgerufenen Befehlskette ./configure ; make ; su -c make install erzeugen Sie den Kodierer ffmpeg und das Abspielprogramm ffplay, die das make install nach /usr/local/bin kopiert. Der Vorteil dieser Variante ist, dass Sie so ffmpeg und ffplay auch separat nutzen können, was mit der in xvidcap eingebetteten Variante nicht funktioniert.
Ebenfalls interessant für Selbstkompilierer ist der ./configure-Parameter --with-gtk2, der zusätzlich ein Programm namens gvidcap erzeugt. Im Gegensatz zum Original kommt es mit einer modernen gtk-2-Oberfläche daher, so dass es sich optisch perfekt in einen aktuellen Gnome-Desktop integriert.
Das Drehbuch
Das neu installierte Tool starten Sie mit
xvidcap &
oder Sie rufen mit dem Befehl
gvidcap &
die gtk-2-Variante auf. Die Bedienelemente sind bei xvidcap (Abbildung 1) und gvidcap (Abbildung 2) identisch angeordnet, doch jedes hat seine Vor- und Nachteile: Das Original vermittelt optisch einen eher altbackenen Eindruck, ist dafür aber stabiler und konfigurierbarer als sein moderner Verwandter. Für diesen Artikel beschreiben wir daher, und weil die beiden Bedienoberflächen sich sehr ähneln, die Arbeit mit xvidcap.
Abbildung 2: Die gtk-2-Variante unterscheidet sich hauptsächlich durch das moderne Äußere vom Original.
Das Programm startet mit einem scheckkartengroßen roten Rahmen, der den Aufnahmebereich umfasst. Beim Bewegen des Programmfensters wandert dieser mit. Stört Sie das, koppeln Sie ihn durch Klick auf den Button mit dem Kreuz vom Rest der Anwendung ab. Da die Vorgabe gerade einmal ausreicht, um Miniprogramme aufzunehmen, definieren Sie als erstes den aufzunehmenden Desktop-Ausschnitt neu. Ein Klick auf das Fadenkreuz in der Werkzeugleiste verwandelt den Mauszeiger in selbiges. Entweder ziehen Sie nun mit gedrückt gehaltener linker Maustaste den Drehbereich auf, oder Sie klicken ein einzelnes Fenster an, falls Sie nur an dessen Inhalt interessiert sind. Dann müssen Sie jedoch im Film auf seine Titelleiste verzichten.
Steht der Drehort fest, gilt es, noch einige Optionen, wie etwa das Ausgabeformat, anzupassen. Den Konfigurationsdialog (Abbildung 3) öffnet ein Druck auf [Alt-O] ([Strg-P] bei gvidcap).

Abbildung 3: Dieser Dialog nimmt unter anderem das gewünschte Ausgabeformat und den Namen der Ausgabedatei auf.
Setzen Sie zunächst den Wert vor Max Frames auf 0, da xvidcap ansonsten nur 30 Bilder aufnimmt. 0 deaktiviert die Begrenzung, so dass Videos beliebiger Länge möglich sind. Im Feld Frames per Second (FPS) bestimmen Sie, wie viele Bilder xvidcap pro Sekunde aufnimmt. Voreingestellt sind 25 – die Anzeige von 25.000000 ist etwas verwirrend, offenbart aber, das xvidcap als Dezimaltrenner einen Punkt erwartet. Wer ein MPEG1- oder MPEG4-Video erstellen will, liest die dafür zulässigen Bildraten in der xvidcap-Manpage unter der Option --fps nach. Gültige Wert für MPEG1 sind z. B. 25 und 50, MPEG4 spielt mit Werten zwischen 7.5 und 30 zusammen. Geben Sie einen ungültigen Wert ein, erhalten Sie Videos, die entweder viel zu schnell oder zu langsam ablaufen.
Der gewünschte Video-Codec gehört ins Feld codec (e.g. MPEG4). Per Default steht dort MPEG1, was Sie für bessere Qualität in MPEG4 ändern sollten. Die hier erzeugten MPEG1-Videos wirkten so grobpixelig, dass Menüeinträge teilweise nicht zu entziffern waren.
Video oder Einzelbilder?
Im Feld File pattern fehlt noch der Name der Ausgabedatei. Belassen Sie es bei der Vorgabe frm-%04d.xwd, erzeugt xvidcap kein Video, sondern einzelne Dateien im xwd-Format (xwindow dump) in dem Verzeichnis, aus dem Sie es gestartet haben. Die Zeichenfolge %04d sorgt für fortlaufende Nummerierung der Bilder, so dass Sie Dateien von frm-0000.xwd bis frm-9999.xwd erhalten. Das Prozentzeichen leitet die Formatinformation ein, 04d (d für dezimal) legt die Anzahl der Stellen fest. Soll Ihr Werk mehr als 10000 Bilder umfassen, ändern Sie den Wert vor File pattern auf frm-%05d.xwd oder frm-%06d.xwd. Den Basisnamen (frm) dürfen Sie dabei ebenso frei anpassen wie das Ausgabeformat: xvidcap schreibt auch JPEG- oder PNG-Dateien. Einzelbilder sind dann praktisch, wenn Sie das Ergebnis noch bearbeiten wollen oder es auf einen Screenshot abgesehen haben, an den Sie mit einem Programm wie ksnapshot nicht herankommen, etwa weil Sie eine nur kurz aufblitzende Fehlermeldung erwischen wollen.
Um direkt ein Video zu erstellen, ändern Sie den Eintrag im Feld File pattern auf einen normalen Dateinamen mit der Endung mpeg, etwa programmdemo.mpeg. Damit Sie die Optionen nicht jedesmal erneut anpassen müssen, speichern Sie sie über die Schaltfläche Savexvidcap schreibt sie in die Datei .xvidcap.scf in Ihrem Home-Verzeichnis. Das gtk-2-Pendant gvidcap liest seine Defaults aus derselben Datei, so dass alles, was Sie in einem Programm ändern, auch für das jeweils andere gilt. Um zu den Default-Einstellungen zurückzukehren, reicht es aus, die ~/.xvidcap.scf zu löschen.
Klappe, die Erste
Über die Schaltfläche mit dem roten Punkt starten Sie die Aufnahme im rot umrahmten Desktop-Bereich. Haben Sie alles Zeigenswerte demonstriert, beendet ein Druck auf den Button mit dem schwarzen Quadrat die Aufnahme. So erzeugte Videos führen Sie Ihrem Publikum mit einem Abspielprogramm wie beispielsweise Mplayer [3] vor (Abbildung 4). Wer es einfach mag, greift auf den bei ffmpeg beiliegenden Kommandozeilen-Player ffplay zurück. Sie rufen das Tool in der Form
ffplay demovideo.mpeg
auf. Ein Druck auf [q] beendet die Vorführung.
Wenn Sie eine Bilderserie erstellt haben, können Sie über die Buttons mit dem nach links oder nach rechts zeigenden Dreieck durch die einzelnen Aufnahmen navigieren. Ein Klick auf die Schaltfläche ganz rechts mit dem Stift öffnet das aktuelle Bild in display: Der Betrachter, der zum ImageMagick-Paket gehört, öffnet bei einem Linksklick in das Bildfenster ein Menü, das einige Bildbearbeitungsfunktionen bietet (Abbildung 5), z. B. Farbanpassungen (Enhance), Größenänderungen und Spiegeln (Transform), sowie mehrere Effekte (Effects und F/X).

Abbildung 5: xvidcap öffnet Einzelbilder direkt in Display, das viele Bildbearbeitungsfunktionen bietet, hier das Enhance-Menü mit Optionen zur Anpassung der Helligkeit, Gammawerte und Sättigung.
Auch der Knopf mit dem Filmstreifen greift auf ein Tool aus der ImageMagick-Programmsammlung zurück: Er startet animate, das aus allen Einzelbildern eine Animation erzeugt und abspielt. Die Option sollten Sie nur bei weniger als 400 Aufnahmen wählen – mit allzuviel Bildmaterial gefüttert, zwingt animate auch leistungsstarke Rechner in die Knie.
Vom Bild zum Video
Über den Menüpunkt FileMake Video wandeln Sie die Einzelbilder in einen Film um. Welches Kommando xvidcap dabei ausführt, liest es aus der Datei ~/.Xdefaults. Dort legen Sie Standardeinstellungen für grafische Programme fest. Das moderne gvidcap schert sich jedoch nicht um die Direktiven in ~/.Xdefaults, so dass das Konvertierungskommando nur für xvidcap gilt. Haben Sie beispielsweise Einzelbilder im PNG-Format mit Namen der Form bild%04d.png erstellt, die Sie mit ffmpeg in ein MPEG1-Video konvertieren wollen, sorgt die Zeile
xvidcap*mkVideoCommand:ffmpeg -i %s video.mpeg
in ~/.Xdefaults dafür, dass xvidcap bei Auswahl des Menüpunktes Make Videoffmpeg aufruft. Damit das gelingt, benötigen Sie das ffmpeg-Programm; die in xvidcap eingebettete Variante reicht nicht aus. xvidcap ersetzt das %s durch das Namensmuster der erzeugten Einzelbilder, im Beispiel durch bild%04d.png. Da ffmpeg diese Schreibweise geläufig ist, konvertiert es alle Dateien mit Namen der Form bild0000.png, bild0001.png usw. der Reihe nach und schreibt das Ergebnis in die Ausgabedatei video.mpeg im aktuellen Arbeitsverzeichnis.
Eine kleine Stolperfalle gibt es, wenn ffmpeg ein Video aus den einzelnen Aufnahmen erzeugen soll: Der Encoder kann mit den standardmäßig von xvidcap erzeugten xwd-Dateien nichts anfangen. An Grafikformaten kennt ffmpegpnm, pam, pgmyuv, yuv, png, jpeg und gif. Eine gute Wahl für Screenshots in xvidcap ist das PNG-Format. Sie stellen es im Optionen-Menü von xvidcap im Feld File pattern als Dateiendung ein.
Die schnellsten Erfolge erzielen ambitionierte Hobby-Filmer, wenn sie in xvidcap direkt die Videoausgabe in Auftrag geben. Das Hantieren mit vielen Einzelbildern bietet sich für alle an, die mit “Videos von der Stange” nicht zufrieden sind und das Rohmaterial zuvor noch bearbeiten wollen.
Glossar
-
gtk-2
-
: Das Gimp Toolkit mit der Major-Version 2. Diese Grafikbibliothek bietet Programmierern fertige Elemente für die Oberfläche eines Programms, beispielsweise Radio-Buttons, Dialogboxen und Eingabefelder. Neben dem Gnome-Desktop ab Version 2.0 basiert unter anderem das neue Gimp auf gtk-2.
-
MPEG
-
Abkürzung für Motion Pictures Expert Group. Diese, aus Firmen und Universitäten bestehende Gruppe, standardisiert die Kompression von Videoformaten. Bei der MPEG-Kodierung versucht man, möglichst viele Bildteile nur durch ihre Differenz zum vorherigen Bild zu beschreiben und dadurch kleinere Dateien zu erhalten.
-
ImageMagick
-
Das Paket beinhaltet eine Tool-Sammlung zur Bildbearbeitung. Da es sich bei den meisten der fast zehn Anwendungen um Kommandozeilenprogramme handelt, eignet sich ImageMagick besonders gut, um viele Bilder skriptgesteuert umzuwandeln und zu bearbeiten.
-
~/.Xdefaults
-
In dieser Datei legen Benutzer bestimmte Vorgaben für grafische Anwendungen fest, wie z. B. die Hintergrundfarbe oder die zu verwendende Schriftart. Welche Anweisungen einzelne Programme kennen, steht in ihrer Manpage. Aktuelle KDE- und Gnome-Anwendungen beachten die Einstellungen in der ~/.Xdefaults gewöhnlich nicht.
Infos
[1] xvidcap: http://sourceforge.net/projects/xvidcap
[2] ffmpeg: http://ffmpeg.sourceforge.net/
[3] Martin Loschwitz: “Movie Theater”, LinuxUser 08/2003, S. 31 ff.



