dvd2xvid


dvd2xvid

dvd2xvid ist ein, zurzeit noch einfach gehaltenes GUI, fuer MEncoder mit dem Hauptsaechlichen Ziel: DVDs in das xvid Format zu konvertieren.


Features:


Entstehung:

dvd2xvid wird momentan von mir alleine entwickelt und steht unter der GPL-2. Ich habe vor, stetig daran zu arbeiten und es zu verbessern. Da ich mir selbst einen Media-PC zugelegt habe und deshalb meine Filmesammlung in das xvid-Format bringen wollte, habe ich nach geeigenten Moeglichkeiten ausschau gehalten dies am einfachsten zu tun. Da fuer mich Windows fuer soetwas nicht mehr in Frage kommt, (bin begeisteter Linux Anhaenger), aber alle Linuxanwendungen die ich gefunden habe, bei meinem Gentoo nicht so gelaufen sind wie ich es mir vorgestellt habe, oder einfach noch Bugs hatten. "DVD::Rip" zum Beispiel stuerzte immer nach einiger Zeit, ca. 5 Minuten mit irgenwelchen Fehlern ab (moechte aber auch dazu sagen das wohl weniger ein Fehler in "DVD::Rip" gewesen ist, sondern mehr an meinem System gelegen hat.). Bin ich zu den Kommandozeilenprogrammen gekommen: "Transcode" und "Mencoder". Nach dem ich mir beide angeschaut habe und mir "Mencoder" irrgendwie sympatischer war, habe ich begonnen meine Filme damit zu konvertieren. Funktionierte auch anstandslos, aber da meine Filmesammlung mittlerweile weit ueber 100 Filme hat (Orignal, von mir gekaufte DVD's) wurde mir sehr schnell klar das mir das mit der Zeit zu unbequem werden wird. Also habe ich begonnen ein kleines, auf QT3.3 basierendes Programm zuschreiben, in dem ich mir den Kommandozeilenaufruf fuer "Mencoder" zusammenbauen konnte. Ausprobiert habe ich das Programm eigentlich immer an meinen System, und habe auftretende Fehler gleich korrigiert. Ja, und mittlerweile sind schon einige Funktionen dazugekommen und ich hoffe mir gehen die Ideen nicht aus, was man noch alles verbessern koennte.


Bedienung:

Mittlerweile bin ich von meinem Grundkonzept abgewichen (Konsolenfenster im Hintergrund geoeffnet lassen waehrend dvd2xvid laeuft) sondern alles direkt ueber dvd2xvid einstellen und abfragen zu lassen. Die Meldungen von Mencoder koennen zwar immer noch direkt an der Standardausgabe ausgegeben werden (Optionen->Encodiermeldungen), aber durch das neue Statusfenster ist es nicht mehr unbedingt noetig das Konsolenfenster offnen zu lassen.

Neu:

Seit Version 0.4.1 gibt es jetzt auch dei Moeglichkeit einen Offset-Wert einzustellen, sprich einen verschiebung der eingestellten Begin- und Endzeiten. Diese Funktion ist dann nuetzlich wenn man (so wie ich) einen DVD-Recorder im Wohnzimmer stehen hat, der die DVD-Informationen nicht fehlerfrei auf die aufgenommene DVD brennt. Wenn man dan die Werbung herraus schneiden moechte und sich die Zeiten dafuer genau notiert hat, und nach dem Encodieren dann alles um genau 12 Sekundenn verschoben ist, wuerde ein Offset eintrag von 12 Sekunden alles wieder gerade biegen. Der Offsetwert ist von -99 bis 99 Sekunden einstellbar.

Ueber die restliche Bedienung gibt es eigentlich nicht mehr viel zu sagen. Bis auf die Stapelverarbeitung, ist meiner Meinung alles andere selbsterklaerend. Die Stapelverarbeitung verbirgt sich hinter dem:

Anhaengen-Knopf

Das Ganze funktoniert so: Man stellt alle Optionen ein die man moechte, mountet die DVD oder setzt den Eingabeordner wo sich die vob-Dateien verbirgt und sucht sich einen Ausgangsnamen aus, aber statt auf den Knopf Encodieren zu druecken, was denn Film sofort konvertieren wuerde, drueckt man den Anhaengen Knopf. Der Encodiervorgang beginnt noch nicht, aber der Aufruf wird einmal zwischengespeichert und ein neues Fenster oeffnet sich wo der Aufruf aufgelistet wird. Jetzt kann man fuer den naechsten Film alle Einstellungen vornehmen und entweder wieder anhaengen oder um die Encodierung zu starten auf Encodieren druecken, dann werden alle zwischengespeicherten und der aktuelle Film encodiert. Alternativ koennte man natuerlich auch denn letzten Film mit Anhaengen, in die Stapelliste hinzufuegen und dann mit den Knopf Starten alle Auftraege in der Liste starten. Wenn man in der Stapelverarbeitung die xvid-Dateien die am Ende entstehen zusammenfuegen moechte, kann man die Option aktivieren "Dateien zusammenfuegen". Dies kann zum Beispiel der Fall sein wenn man aus einem Film aus dem DVD-Recoder die Werbung herausschneiden moechte. Dann muss man das Ganze in einzelne Filme aufteilen mit der Startposition und Endposition die Werbung jeweils weglassen und am Schluss wenn man den letzten Filmabschnitt eingestellt hat auf encodieren druecken. Dann werden die einzelen Teile des Films einmal encodiert am Schluss wieder zusmmengefuegt und wenn man die Option ".part Dateien loeschen" aktiviert gehabt hat dann werden die einzelnen Filmteile automatisch geloescht. Der Knopf "Reset" loescht alle zwischengespeicherten Auftraege und schliesst das Fenster.

stapelfenster

Das Stapelfenster wird nach den Start des Encodiervorgangs automatisch zum Statusfenster. In diesem Statusfenster kann man dann ablesen welcher Auftrag gerade abgearbeitet wird. Die Ueberschrift vom Fenster zeigt auch den momentanen Status an. Dies ist hilfreich wenn man das Fenster minimiert hat, so kann man immer sehen wie weit dvd2xvid gerade ist. Der Knopf "Stop" ist dazu da, um erst beim naechsten Job in der Liste abzubrechen, also nicht um den momentanen Auftrag abzubrechen. Wenn man den aktuellen Auftrag und alle anderen Auftraege in der liste loeschen will, muss man den "Abbrechen"Knopf druecken.

statusfenster


Hier noch eine etwas genauer Erklaerung zu ein paar Encodier-Optionen:

Autoaspect:

Speichere den Filmaspekt intern, wie bei MPEG-Dateien. Dies ist eine viel elegantere Loesung als den Film neu zu skalieren, da die Qualitaet nicht verringert wird. MPlayer und ein paar andere Player werden diese Dateien korrekt wiedergeben, andere werden das Groessenverhaeltnis falsch darstellen. Das Seitenverhaeltnis wird automatisch ausgewaehlt.(Auszug aus der MEncoder-Manpage)

2 Pass:

Gibt an, ob im 2-Pass Modus encodiert werden soll. Beim 2-Pass Modus werden 2 Durchlaeufe hintereinader durchgefuert. Der erste Durchlauf analysiert das Viedomaterial und speichert die Daten in einer kleinen temporaeren Datei ab und mit diesen Daten kann dann der Mencoder beim 2 Durchlauf ein Qualitativ besseres Ergebnis erziehlen. Einen Nachteihl hat das ganze, der Decdodiervorgang dauerte dadurch fast doppelt so lange.

Bewegungsabschaetzung (vhq):

Der Algorithmus für die Bewegungsabschätzung basiert auf der Suche im normalen Farbraum und versucht, einen Motion-Vector zu finden, der die Differenz zwischen dem ursprünglichen und dem encodierten Frame minimiert. Ist diese Option aktiviert, benutzt XviD außerdem den Frequenzbereich (frequency domain, DCT), um nach einem Motion-Vector zu suchen, der nicht nur den Unterschied in einem bestimmten Gebiet, sondern außerdem die encodierte Länge eines Blocks minimiert.
Vom schnellsten zum langsamsten: (Auszug aus der MEncoder-Manpage)

Audio Encodierungs Optionen:

copy= Der Ton wird nicht veraendert sondert nur kopiert
mp3lame= Der Ton wird wird mit den mp3codec codiert
pcm= Der Ton wird im PCM/Wave Format codiert.

Bitrate Encodierungs Optionen:

Bitrate ist die Anzahl der pro Zeiteinheit uebertragenen Datenmenge also in unseren Fall sind das Kilobit pro Sekunde (kb/s). Die Bitrate bestimmt die Staerke der Komprimierung und damit die Qualitaet der Daten. Je hoeher die Bitrate, desto weniger komprimiert, desto groesser die Datei und desto hoeher die Qualitaet. Ein Ausgewogener Wert zwischen Qualitaet und Groesse ist meiner Meinung nach 1200 k/s, aber da sollte jeder selber herumexperimentieren und dann das nehmen, was ihm vom Endergebniss am Besten gefaellt.

Am Ende Herunterfahren:

Damit soll der PC am Ende des Encodiervorganges automatisch herutergefahren werden. 15 Sekunden bevor der poweroff Befehl gesendet wird, kommt an der Standardausgabe noch eine Meldung und wenn man sich es anders ueberlegt haben sollte, koennte man das Programm noch vorher beenden was das herunterfahren verhindern wuerde. Momentan funktuniert diese Option aber leider nur im Root Modus. Anmerkung: Seit der Version 0.3.0 kann man diesen Punkt erst nach den Start des Encodiervorgnges aktivieren, und zwar im Statusfenster.

Ausgabe editieren:

Wenn dieser Menuepunkt aktivert ist, dann erscheint unmittelbar vor dem Encodierauftrag ein kleines Fenster mit den genauen Aufruf, der an Mencoder uebergeben wird und diesen kann man dann noch nach eigenen belieben veraendern.

Achtung:Eine Syntaxpruefung wird keine mehr durchgefuehrt, also bei einer Flascheingabe wird der Mencoder mit einen Fehler abbrechen. Dies nur zur Info!

Encodiermeldungen:

Hier werden die Normalen Statusmeldungen an der Standardausgabe ausgegeben.

Debuglevel:

Der Debuglevel diente mir eigentlich hauptsaechlich als Programmierhilfe. Seit Version 0.5.0 ist der Debuglevel auf die Komandozeile gewandert. Einfach den gewuenschten Debugwert als ersten Paramter den aufruf hinzufuegen.

Level 0 = Debugmodus ausgeschaltet.
Level 1 = Der Mencoder aufruf wir nicht ausgefuert sondern der String mir den Mencoder geoeffnet werden sollte wird an die Standardausgabe ausgegeben. Also es wird nichts Encodiert sondern nur simluliert (he das reimt sich ja).
Level 2 = Wie Level 1 nur mit ein paar Infos welche Methoden und Slots gerade bearbeitet werden. Auch hier wird nichts Encodiert, sondern nur simluliert.
Level 3 = Wie Level 2 nur mit allen Variablen die ich interressant gefunden habe und auch hier nur simuliertes schreiben.


Installation:

Aktuelle Version ist dvd2xvid-0.7.0 seit der letzten Version wurden folgende Verbesserungen durchgefuehrt:


Wenn man dvd2xvid nicht selber kompilieren moechte, kann man sich mittlerweile schon einige "rpm"-Pakete von der Download Seite herunterladen.

Wenn man sich entschlossen hat dvd2xvid aus den Quellen selber zu installieren sollte ein einfaches make und make install reichen, das make install natuerlich im Rootmodus.

Um dvd2xvid wieder zu entfernen, sollte ein make clean ausreichen.


Abhaengigkeiten:

Fuer das Kompilieren ist QT 3.3 und libdvdread-0.9.4 oder groesser noetig, aber da eigentlich viel als Aufruf weitergegeben wird, sind im Betrieb dann noch folgende Programme noetig:

MPlayer > 1.0: Wahrscheinlich gehts auch mit aeltern Versionen, habe ich nur nie ausprobiert, neuere sollten auf alle Faelle fehlerfrei funktionieren.

transcode v1.0.0: Transcode wird fuer das zusammenfuegen von Video- und Audiodatein verwendet, da ich bei Mplayer keine Moeglichkeit gefunden habe dies zu tun.

xvid > 1.0: Natuerlich sollte der Xvid-Codec auch in einer aktuellen Version vorliegen.

Achtung!: Bis einschliesslich Version 0.3.1 ist auch lsdvd noetig gewesen, ab den aktuellen Versionen allerdings nicht mehr.

Wenn jemand Probleme mit einer aelteren, oder neueren Version bekommt, dann lasst es mich doch wissen und schreibt mir eine E-Mail und zwar unter neodym@neoversum.org


Hilfe:

Da ich vorhabe dieses Programm professionell und moeglichst anwenderfreundlich zu Gestalten, waehre ich ueber jede Hilfe dankbar, egal ob beim Programmieren, oder beim Uebersetzen in eine andere Sprache (ist eines meiner Hauptziele in der naechsten Zeit). Also bei Interresse, aber auch Kritik schreibt mir doch einen E-Mail und zwar unter neodym@neoversum.org