Video-Dateien in guter Qualität und in Spielfilmlänge verbrauchen gigantische Mengen an Speicherplatz, auf CD, Festplatte oder DVD – die traditionellen Video-Dateiformate sind also für die Archivierung größerer Video-Daten ungeeignet; zudem möchte wird nicht jeder Anwender einen DVD-Brenner kaufen wollen.
Eine mögliche Problemlösung ist das neue Video-Format DivX ;-), welches in diesem Artikel unter die Lupe genommen wird. Neben der Möglichkeit, eigene DivX-Filme unter Linux zu erstellen, stellt Ihnen der Artikel auch die bekanntesten und besten Player für Linux vor.
Was ist DivX ;-)?
DivX ;-) basiert auf dem von der Motion Pictures Expert Group [1] veröffentlichten Kompressionsformat MPEG-4. Gegenüber den bisherigen Standards MPEG-1/2 benötigt MPEG-4 nur einen Bruchteil der Speicherkapazität, um eine zufriedenstellende Qualität zu erreichen.
Um genau zu sein, stellt das DivX ;-) -Format nicht eine Abwandlung des MPEG-4-Formates, sondern einen Hack des von Microsoft auf MPEG-4 aufbauenden ASF-Formates dar. Der MPEG-4-Codec wurde von Microsoft weiterentwickelt und basiert in allen Versionen (V1,V2,V3) auf MPEG-2-Technik, allerdings wird u. a. die Bitrate der einzelnen Frames durch stärkstmögliche Kompression erheblich erhöht, daher sind die Dateien trotz bester Qualität noch sehr klein.
Das als DivX ;-) veränderte Format des V3-Codec wurde also durch Reverse Engineering von Microsofts Format abgeleitet. Seit der Verbreitung von DivX im Internet wurde das Format auch für Linux-Benutzer immer interessanter. Es ist deshalb nicht verwunderlich, dass es mittlerweile eine nicht zu verachtende Anzahl an Playern und sogar Converter für DivX-Filme unter der freien Betriebssystemalternative gibt. Diese basieren fast alle auf einer Applikation bzw. Bibliothek, die für Linux angepasst wurde: avifile.
Avifile – Das Gerüst
Alle hier besprochenen Applikationen und Tools benutzen die von Eugene Smith kreierte avifile-Library [2]. Die Verfügbarkeit dieser Bibliothek stellt also eine zwingende Voraussetzung dar, um viele der Applikationen benutzen zu können. Andere wiederum basieren auf einer extra für das Programm angepassten Version von avifile.
Was ist aber so interessant an avifile, und was macht diese Bibliothek für andere Entwickler so brauchbar? Nachfolgend will ich Ihnen kurz die Funktionsweise und das Prinzip von avifile erläutern.
Die Grundidee von avifile ist, Windows-DLLs (Dynamic Link Library, Bibliotheken) als Plug-Ins anzubinden, um diese für die Wiedergabe oder Aufnahme von Videos zu verwenden. Dass es im Vergleich zu einer Neuentwicklung schneller geht, zeigt der momentane Status des Projektes. Bereits nach sechs Monaten unterstützt die Bibliothek eine nicht zu verachtende Anzahl an Codecs. Wer nun glaubt, dass bei einer solchen Vorgehensweise die Geschwindigkeit der Applikation leidet, wird überrascht sein: Trotz der Verwendung der Windows-Dateien sind die Applikation und die abgespielten Filme angenehm schnell und (speziell bei DivX) sogar schneller als die des Windows-Pendants.
Einer der weiteren Gründe, die für den Einsatz von Windows-DLLs unter Linux sprechen, sind patentierte Codecs, die nicht ohne weiteres auf Linux portiert werden können. Stellt der Hersteller solche Codecs nicht in einer Linux-Version zur Verfügung, so ist eine Portierung dieser unter Umständen rechtlich problematisch. In der Verwendung von Original-DLLs sehen die Autoren eine der wenigen legalen Möglichkeiten, patentierte Codecs auch unter Linux zu benutzen.
Bei der Programmierung der Applikation setzte der Entwicklerkreis Teile der bekannten Windows-API-Nachbildung WINE und Willows TWin-Projektes (ca. 50 KB Alpha-Code) ein. Dies hat zur Folge, dass die Bibliothek zwar theoretisch plattformunabhängig sein sollte, in der Praxis aber durch die Verwendung eines “Win32 Binary Loaders” nur auf der x86-Architektur eingesetzt werden kann.
Funktionen und Programme von avifile
avifile stellt, wie der Name bereits verrät, eine Bibliothek dar, die es ermöglicht, die unter Windows verfügbaren avi-Codecs auch unter Linux abzuspielen. Dabei beschränkt sich die Applikation nicht auf avi, sondern unterstützt auch andere Formate. Es ist zwar mittels xanim auch unter Linux möglich, avi-Dateien abzuspielen, die Wiedergabegeschwindigkeit ist aber in der Regel unbefriedigend. Ein weiteres Manko von xanim stellt die geringe Anzahl der unterstützten avi-Codecs dar. Avifile unterstützt dagegen bereits jetzt schon folgende Codecs:
- ATI VCR-2
- Cinepak
- DivX ;-)
- Indeo Video 3.2, 4.1, 5.0
- Microsoft MPEG-4
- Motion JPEG Ein weiteres Augenmerk setzten die Entwickler auf saubere Schnittstellen zu anderen Applikationen und auf eine Vielzahl an Hilfs-Programmen. Zu den nützlichsten Tools des avifile-Paketes dürften folgende Applikationen zählen:
- aviplay: Ein simpler aber sehr stabiler Player, der alle von avifile unterstützten Codecs abspielen kann. Eine genaue Beschreibung des Players folgt weiter unten.
- Recompressor: Ein kleiner Recompressor, der die Manipulation von avi-Filmen erlaubt.
- qtvidcap: Ein auf der Video4Linux-Schnittstelle aufbauendes Video-Aufnahme-Tool. Neben der Auswahl des Aufnahmeformates ermöglicht die Applikation, bereits im Vorfeld Einstellungen über die Qualität des Filmes zu bestimmen.
Aufnahme eines DivX ;-) Filmes
Bevor wir die unter Linux verfügbaren Player ansprechen, will ich Ihnen zuerst drei Programme vorstellen, die für die Herstellung von DivX-Dateien benutzt werden können. Zwei der Applikationen befinden sich im Lieferumfang von avifile. Die dritte im Bunde wurde von einem anderen Autor entwickelt und setzt auf avifile auf. Qtvidcap
Das Programm bietet allen Benutzern die Möglichkeit, das Format auszuwählen und bei Bedarf auch zu konfigurieren (Kompression und weitere Optionen). Neben der Einstellung der Format-Optionen ermöglicht qtvidcap auch, Grundeinstellungen zu Video-Optionen durchzuführen.
Neben der Möglichkeit der Einstellung von Parametern, die die Bildqualität beeinflussen (Helligkeit, Kontrast, Farbe), wertet das Programm auch globale Einstellungen zum Film aus (Größe, Audio-Qualität, Keyrate oder Limits). Leider schränkt die Applikation die verfügbare Größe des Filmes auf 384×288 Pixel ein, was eine Aufnahme in voller PAL-Qualität verhindert. Auch die Stabilität ließ auf unserem Testsystem Wünsche offen. Das Programm stürzte reproduzierbar in gleichen Abständen ab und verhinderte eine Aufnahme eines Filmes über 15 Minuten.
Recompressor
Recompressor ist ein äußerst leistungsfähiger und vor allem schneller grafischer Konverter zwischen verschiedenen (von avifile unterstützten) Formaten. Die Applikation befindet sich ebenfalls im Lieferumfang von avifile und ermöglicht neben der eigentlichen Konvertierung auch die Manipulation des Bildmaterials mittels Filtern. Diese kleinen Helfer sind eine perfekte Ergänzung, die einen bereits aufgenommenen Film leicht verändern lassen.
Zu den bereits verfügbaren Filtern gehören:
- Gamma-Einstellungen
- Blur-Filter
- Lichtbrechungskompensation
- Rauschen reduzieren
- Farbe ändern
Leider verfügt Recompressor über keine Möglichkeit, die Audio-Spur zu verändern. Im Moment gestattet das Programm es lediglich, die Audiokompression auszuwählen (entweder keine, oder mp3).
Ein weiteres Feature, das die Konvertierung sehr erleichtert, ist eine kleine Schnitt-Funktion. Das Programm ermöglicht, wahlweise eine identische Kopie des Masters herzustellen oder nur ein Fragment des Originals zu konvertieren. Dieses Fragment kann entweder per Frame-Definition (von Frame x bis Frame y) oder durch Sekundenangabe (von x Sek. bis y Sek.) festgelegt werden. Eine umgekehrte Definition, die ein Fragment von der Konvertierung ausschließt, ist ebenfalls möglich.
Es sollte auch erwähnt werden, dass in allen zu avifile gehörenden Applikationen nicht nur der gewünschte Codec ausgewählt werden kann, sondern auch die Handhabung verständlich beschrieben wird. Wer einen Codec nicht kennt, der erfährt in einer eingebauten Hilfefunktion, für was er diesen einsetzen kann und welche Vorteile/Nachteile dieser Codec hat.
Mpeg2divx
Diese von Ulrich Hecht entwickelte Applikation [3] ermöglicht es, bestehende MPEG-1- oder MPEG-2-Filme in das DivX ;-) -Format zu konvertieren. Im Gegensatz zu Recompressor verfügt dieses Programm über keine grafische Oberfläche sondern wird von der Kommandozeile bedient. Die Einstellmöglichkeiten gleichen denen des Recompressors. Leider benutzt mpeg2divx nicht die bei Recompressor verfügbaren Filter, so dass das Bildmaterial bereits angepasst werden muss. Wer aber eine Sicherheitskopie eines DVD-Filmes mit dieser Applikation erstellen will, wird diese Funktionalität ohnehin nicht brauchen.
DivX ;-) Filme unter Linux abspielen
Nachdem Sie nun in der Lage sind, unter Linux DivX ;-) -Dateien zu erstellen, wäre es auch endlich an der Zeit, die besten Player kennenzulernen. Auch diese Applikationen setzen bei der Wiedergabe von DivX ;-) -Dateien auf die freie avifile-Bibliothek. Manche der Vertreter setzen die Verfügbarkeit dieser Bibliothek voraus, andere wiederum liefern diese im Programpaket mit.
Aviplay
aviplay befindet sich im Lieferumfang von avifile und muss nicht separat kompiliert werden. Sofern die avifile-Bibliothek ohne Fehler installiert wurde und Qt 2 auf Ihrem System vorhanden ist, sollte dieses Programm auf Ihrem Rechner verfügbar sein.
aviplay ermöglicht allen Benutzern, die auf Funktionalität oder Aussehen keinen besonderen Wert legen, auf eine einfache Art, DivX ;-) -Dateien abzuspielen. Neben der Möglichkeit, die Wiedergabe zu starten und zu stoppen, verfügt aviplay auch über eine simple Jog/Shuttle-Funktionalität, die das Springen an jede gewünschte Stelle des Filmes ermöglicht. Leider sucht man bei aviplay einen Schnellvor- und -rücklauf vergebens.
Die Wiedergabe eines Filmes kann entweder im X11-Fenster oder mittels SDL im Vollbild-Modus erfolgen.
LAMP (Linux Animation and Movie Player)
LAMP [4] ist ein sehr leistungsfähigen Player, der dank Anbindung verschiedener Bibliotheken eine große Anzahl an Codecs unterstützt. Neben den bereits bei avifile verfügbaren Codecs bindet das Programm zusätzlich folgende Bibliotheken ein:
- SMPEG (MPEG-1)
- libmpeg3/libmpeg2 (*.mpg, *.vob)
- libquicktime (Quicktime movies)
- xanim (eine Vielzahl an älteren Codecs)
Das Programm erkennt die benötigten Codecs und startet den entsprechenden Player automatisch. Eine manuelle Eingabe ist ebenso möglich wie die Erstellung von Regeln, mit deren Hilfe der Player das gewünschte Format erkennen kann.
Die Wiedergabe eines DivX ;-) -Filmes erfolgt über eine angepasste avifile-Version, die im Lieferumfang des LAMP-Paketes enthalten ist. Folglich werden auch alle von avifile unterstützten Codecs ohne nennenswerte Probleme entweder in einem X11-Fenster oder im Vollbildmodus dargestellt.
Leider befindet sich LAMP in einer sehr frühen Entwicklungsphase und funktioniert teilweise recht eigenmächtig. Wer sich entschließen sollte, die aktuellste Beta-Version auszuprobieren, muss unter Umständen mit Problemen bei der Kompilierung rechnen.
Xmps
Eine sehr interessante und vor allem optisch ansprechende Entwicklung stellt der Player xmps dar [5]. Trotz seiner recht frühen Entwicklungsphase implementierte der Autor bereits viele Funktionen. Neben den von avifile unterstützten Codecs beherrscht xmps ebenfalls MPEG-1 und ab der nächsten Version auch MPEG-2-Formate.
Die Benutzeroberfläche erinnert an den bekannten mp3-Player xmms; neben der Möglichkeit, eigens für xmps geschriebene PlugIns einzubinden, bietet xmps verschiedene Rendermodi an. Im Moment stellt das Programm folgende Modi zur Verfügung:
- X11: Die Anzeige erfolgt in einem X11-Fenster.
- SDL: Die Anzeige ist sehr schnell und kann entweder im Fenster oder im Vollbildmodus erfolgen.
- OpenGL: Hardwarebeschleunigter Renderer, der durch eine beeindruckende Geschwindigkeit überzeugt. Sollten Sie über eine stabile OpenGL-Implementierung verfügen, so ist dieser Renderer auf jeden Fall die erste Wahl. Auch dieser Player ist noch in einer frühen Entwicklungsphase und stürzt bei diversen Modi schon mal ab. Die Darstellung im SDL-Modus verlief bei unserem Test erfolgreich und bereitete uns keine nennenswerte Probleme. Besonders interessant ist das Aussehen des Players, der sich wahlweise im GTK-Look oder (wie xmms) mit einem “Skin” präsentieren kann.
Weitere Player
Die drei oben vorgestellten Player sind sicherlich nicht die einzigen Vertreter ihrer Zunft. Eine Reihe weiterer Player ermöglicht ebenfalls das Abspielen von DivX;-) Filmen mittels avifile unter Linux. Im letzten Abschnitt werden noch kurz zwei weitere Player vorgestellt.
- Xtheater [6] – Xtheater stellt einen modular aufgebauten Player dar, welcher neben den von avifile unterstützten Formaten zusätzlich noch MPEG-1 abspielen kann. Die Applikation basiert auf GTK und wird seit August 1999 entwickelt.
- Xmms [7] – Ja, Sie haben richtig gelesen. Ein Plug-In für xmms ermöglicht, auch mit diesem MP3-Player avi-Filme unter Linux abzuspielen. Die Applikation setzt auf avifile auf und bietet die selbe Funktionalität wie aviplay.
Glossar
-
Qtvidcap
-
stellt ein Werkzeug dar, mit dem Filme von einer herkömmlichen V4L-Quelle (Video 4 Linux) aufgenommen und in einem von avifile unterstützten Format auf die heimische Platte gespeichert werden können. Das Programm befindet sich im Lieferumfang von avifile und wird bei der Kompilierung der Bibliothek automatisch erzeugt, sofern Sie Qt installiert haben.
Infos
[1] MPEG-Homepage (http://www.mpeg.org)
[2] avifile-Bibliothek (http://divx.euro.ru/)
[3] mpeg2divx-Homapage (http://www.emulinks.de/divx/)
[4] LAMP-Homapage (http://pauillac.inria.fr/lamp/)
[5] XMPS-Homepage (http://xmps.sourceforge.net)
[6] XTheater-Homepage (http://xtheater.sourceforge.net/)
[7] DivX-PlugIn für xmms (http://www.xmms.org/plugins_input.html#122)










