Inhaltsverzeichnis   --> nächstes Kapitel   <-- vorheriges Kapitel  letzte Änderung am 23. August 2002

4. Wandlung der DVD in eine AVI-Datei

Hier hast Du die Wahl zwischen zwei Möglihckeiten - entweder transcode oder MEncoder. Beide haben Pro und Contras. Hier ist eine kurze Liste, die zumindest für die CVS-Versionen vom 28. April 2002 zutrifft.

4.1. Seitenverhältnisse

Bevor wir anfangen, möchte ich Dich in die meist gebräuchlichen Seitenverhältnisse, die Dir begegnen könnten, einführen. DVDs sind immer kodiert als 720x576 (5:4), obgleich das Bild beim Abspielen skaliert wird. übliche Video-Formate sind 4:3 = 1.33 für TV, 16:9 = 1.78 für normale Kinofilme und 2.35:1 für Cinemascope.

Hier eine Liste der üblichen Szenarien:

Keine Sorge, falls Du das nicht auf Anhieb verstehst. Schau dir dvd::rip's clipping und scaling Optionen für einen eher intuitiven überblick an.

4.2. Benutzung von dvd::rip

Die Benutzung von dvd::rip ist mit Abstand die beste und einfachste Methode Dein AVI-File zu erstellen. Wie bereits zuvor erwähnt, beruht es stark auf transcode, dass die eigentliche Aufgabe erledigt.

Nach dem Start von dvd::rip ripst Du die Titel, die Du wandeln möchtest auf Deine Festplatte. Siehe Kapitel 3 für eine detaillierte Beschreibung.

4.2.1. Schneiden und Zoomen

Nun wirf einen Blick auf die Clip & Zoom Tabelle. Hier kannst Du alle Parameter bezüglich Bildgröße und Ausschnitt einstellen. Zunächst hole ein Bild zum damit Arbeiten: Gib einfach eine Frame-Zahl (wie z.B. 200) in die Grab Preview Frame Eingabezeile und drücke auf Grab Frame from ripped VOB. Nach wenigen Sekunden zeigen die 3 Anzeigen darunter den angeforderten Frame.

transcode verwendet drei Schritte um das Bild zu seiner endgültigen Größe zu bringen: Erst schneidet es das nichtskalierte Bild, dann ändert es die Größe und schliessliche schneidet es nochmals. Jeder dieser Schritte kann ausgelassen werden; durch Auswahl von 0 für Clipping und durch die Original-Breite und Höhe für das ändern der Größe. Jedes Fenster zeigt das Ergebnis eines dieser drei Schritte. Wenn Du sehen willst, wie groß die Bilder tatsächlich sind, klicke einfach auf eines von ihnen und ein PopUp-Fenster öffnet sich mit dem Ergebnis.

Möglicherweise hast Du die drop-down-listbox unter den drei Vorschau-Fenstern bemerkt. dvd::rip biete eine große Zahl an Voreinstellungen zum Arbeiten an. Die einfache Auswahl eine dieser Voreinstellungen gibt Dir eine gute Startposition. Alle Voreinstellungen die 'autoadjust...' heißen, versuchen die korrekte Schnitt-Region automatisch zu ermitteln. Nach der Auswahl einer Voreinstellung drücke den Apply Preset Values Knopf. Nun verstelle die Werte bis du mit dem Ergebnis zufrieden bist.

Die big frame, medium frame und small frame Teile beziehen sich auf die endgültige Bildgröße, die erreicht werden soll. big erhält fast die volle DVD-Auflösung, medium liegt irgendwo zwischen 500 und 600 für die Breite und small liegt irgendwo um 350.

Eine Anmerkung zum Verändern der Größe: Use fast resizing (benutze schnelle Größenänderung) hat großen Einfuß auf die Bildverarbeitung aber erfordert, dass die Ziel- Breite und Höhe durch 32 teilbar ist. Keine Sorge dvd::rip wird Dir sagen, wenn Du kein "Fast Resizing" nutzen kannst. Beachte: Wenngleich es möglich ist, tatsächlich die Bilder zu vergrößern, rater ich stark davon ab. Es gibt mehrere Nachteile: Zum einen braucht der Encoder viel mehr Bits um die gleiche Qualität zu erreichen, die Du auch erreichst, wenn Du ein kleineres Bild kodierst und dieses dann beim Abspielen vergrößerst, und zudem kann es auch zu Bildverzerrungen kommen (Peter Schuller berichtete mir von einem solchen Fall). Skaliere immer nach unten (=kleiner).

4.2.2. Wahl der Kodierungs-Parameters

Wir sind fertig mit dieser Tabelle. öffne die
Transcode Tabelle. Entscheide zuerst welches Video-Codec Du verwenden möchtest. Wenn Du DivX5 für Linux installiert hast, kannst Du es verwenden, aber ich würde die Verwendung von XviD empfehlen. Wenn Du die CVS-Version von XviD heruntergeladen hast, dann ist dazu die Option xvidcvs (offensichtlich) zu wählen. Sollte transcode später mit einigen obskuren Fehlermeldungen abbrechen, kannst Du xvid ausprobieren.

Erinnerst Du Dich, dass ich Dich bat, zu prüfen, ob das Video interlaced ist? Jetzt brauchen wir diese Information. Falls Dein Video nicht interlaced ist, lasse einfach deinterlacing und antialias auf off. Andernfalls wähle 3 - Zoom To Full Frame. Dies ist der langsamste aber am besten aussehende Deinterlacer. Hier ist nochmal das Interlaced Bild-Beispiel aus Ally McBeal. Du kannst das Ergebnis aus 3 - Zoom To Full Frame unter first deinterlaced picture betrachten.

Ein weiterer De-Interlacing-Filter steht durch ein externes Plugin zur Verfügung (keine Sorge, Du hast es bereits beim Installieren von transcode selbst mitinstalliert). Schau nach unten recht. Dort ist ein Eingabefeld mit der Bezeichnung transcode options. Alle hier eingegebenen Optionen werden einfach an transcode weitergegeben. Das können wir für das De-Interlacing nutzen. Hier ist das gleiche Bild wie oben deinterlaced mit einem anderen Deinterlacer. Dieser Deinterlacer ist schneller als die 3 - Zoom To Full Frame-Option. Wenn Du diesen Deinterlacer verwenden willst, dann setze deinterlace auf off und gebe -J dilyuvmmx in die Eingabezeile ein.

dvd::rip versucht die Bildrate automatisch zu ermitteln. Falls dies fehlschlägt kannst Du es hier korrigieren. Use YUV internal sollte immer auf yes stehen, es sei denn der Ausgabe-Codec unterstützt keine YUV-Modes. XviD unterstützt aber YUV. Es angeschaltet zu lassen gibt einen großen Geschwindigkeitsschub. DivX multipass sollte auch auf yes stehen, es sei denn, Du möchtest lediglich eine Vorschau. Für das endgültige AVI-File solltest Du immer 2-Pass-Kodierung verwenden. Auch wenn diese Option DivX multipass bezeichnet ist, arbeitet sie auch prima mit XviD

Die Audio-Optionen sollten selbsterkärend sein. Du wählst entweder die Tonspur in MP3 umzukodieren (unter Verwendung der angegebenen Bitrate) oder die Original AC3-Tonspur ohne Veränderung beizubehalten. AC3-Audio stellt Surround-Sound zur Vefügung und all diese Vorteile, aber benötigt mehr Platz als MP3-Sound. Es ist wirklich Deine Wahl. Wenn Du MP3 wählst, stelle sicher, dass die MP3 Quality auf 2 steht. Gemäßt der lame-Dokumentation (lame wird zur MP3-Kompression verwendet) höhere Qualitätseinstellungen wie 1 oder 0 - beste aber langsamste sind viel langsamer aber erzeugen keine bezeichnend bessere Qualität. Volume rescale erlaubt die Normalisierung des Tons, die kein separates (externes) Programm benötigt. dvd::rip scant automagisch die Tonspur und stellt einen rescale-Wert zur Verfügung

Oben rechts befindet sich die Bitraten-Option. Du kannst einfach die Rip-Größe durch Wahl der Anzahl und Größe der CDs, die Du verwenden willst einstellen. Verändern der Target Size (Zielgröße) oder der Video Bitrate funktioniert auch. dvd::rip aktualisiert automatisch die errechneten Werte darunter, sodass es einfach ist, die optimale Bitrate zu ermitteln.

4.2.3. Erstellen einer schnellen Vorschau

In den meisten Fällen solltest Du dvd::rip eine kleine Vorabansicht erstellen lassen. Das tust Du duch Angabe eine Frame Range. Ich verwende meist ein 30 Sekunden-Sample, das entspricht 750 Bildern bei 25 fps (<Anzahl der Sekunden> * <Bildrate> = <Anzahl der zu kodierenden Frames>) und starte irgendwo im Film (so bei 200 oder 300 frames). Gute Werte könnten z.B. 200 - 950 sein. Du solltest außerdem transcode einen hohen nice-Wert (was einer niedrigen Prozess-Priorität entspricht) geben, sodass es nur freie CPU-Zeit verwendet. Wenn Du wirklich dein Preview jetzt und sofort haben möchtest, kannst Du auch vorübergehend DivX Multipass abschalten. Vergiss nicht, es später wieder einzuschalten!

Wenn Du fertig bist klicke auf Transcode. Nach einigen Minuten wird Dein AVI/MPEG fertig sein. Nun schau es Dir an (z.B. mit mplayer my-new-file.avi) Dies ist ein guter Moment um zu sehen, ob deinterlacing wie erwartet arbeitet und um zu prüfen ob Audio und Video synchron laufen. Wenn ja, bist Du bereit. Andernfalls lies weiter:

4.2.4. Verhindern von Audio/Video Desynchronization

Wenn Deine Audio- und Videospur bei der Vorschau nicht synchron zueinander abgespielt werden (oder auch beim Abspielen der DVD selbst), kannst Du transcode einen Frame-Offset für die A/V-Synchronisation geben. Das tust Du durch Angabe des Parameters -D nr in der transcode options Eingabezeile in der TranscodeTabelle. nr ist die Anzahl der Frames die die Audiospur verzögert ist. Diese Zahl kann auch negativ sein. Ein Frame ist 40ms lang bei 25 fps. Im Allgemeinen ist die Frame-Länge (1000 / fps) ms lang. Für meine Ally McBeal-DVD benötige ich eine Korrektur von -2, was -80ms entspricht: -D -2. Nun erstelle erneut eine Vorschau (die anderen Parameter sollten die gleichen bleiben) und prüfe die Tonspur erneut. Falls nötig wiederhole diesen Schritt bis Du mit dem Ergebnis zufrieden bist.

4.2.5. Das Ganze ausführen

Wenn die Vorschau gut ist, kannst Du mit der Wandlung beginnen. Stelle sicher, dass DivX Multipass wieder eingeschaltet ist, falls Du es für die Vorschau abgestellt hast. Klicke dann entweder auf Transcode oder auf Transcode + Split falls Du Deine Dateien automagisch nach den Angaben unter Video Bitrate Calculation geteilt haben möchtest.

Jetzt ist eine gute Zeit für soziale Kontakte :-)

4.2.6. Für fortgeschrittene Benutzer: transcode Kommandozeilen-Argumente

Dieses Kapitel erklärt die transcode Kommandozeilen-Optionen, die von dvd::rip genutzt werden. Dies ist nicht entscheidend für den Wandlungs-Prozess, Du kannst diesen Teil also auch überspringen. Ich schreibe ihn für diejenigen, die einen tieferen Einblick haben möchten, was dvd::rip und transcode tun.

In dvd::rip drücke Strg-t, um die Kommandos, die dvd::rip ausführt, zu sehen. Im Moment wollen wir uns auf die letzten Kommandos konzentrieren, Transcode command. Hier ein Beispiel für meine Star Trek: The Next Generation DVD ohne die ganzen mkdir und cd Kommandos:

  1. transcode -i /space/tng-biggoodbye/vob/004 -w 4357,250,100 -a 1 -b 128,0,0 -s 3.311 -V -f 25 -B 12,10,8 -R 1 -x vob,null -o /dev/null -y xvidcvs,null
  2. transcode -i /space/tng-biggoodbye/vob/004 -w 4357,250,100 -a 1 -b 128,0,0 -s 3.311 -V -f 25 -B 12,10,8 -R 2 -x vob -o /space/tng-biggoodbye/avi/004/tng-biggoodbye-004.avi -y xvidcvs
Ein Blick auf das erste Kommando und seine Parameter: Die zweite Kommandozeile weicht nicht so sehr davon ab. Sie überspringt alle Optionen die die Ausgabe abschalten würden (wie -o real-file-name und -y xvidcvs). Für eine vollständige Kommandoreferenz siehe die transcode und lameman pages.

Eine letzte Anmerkung: Du wirst sehen, dass transcode seit Version 0.6.0pre6-20020529 Unterstützung für das libavcodec üver ein von mir geschriebenes noch expermentelles Export-Modul enthält. Du kannst dies aktivieren durch Verwendung von -y ffmpeg4 (zur Erinnerung: libavcodec ist Teil von ffmpeg) anstelle des vorherigen Codecs. dvd::rip unterstützt dies zur Zeit noch nicht (lies: der Codec ist nicht in der Liste der auswählbaren Codecs).

4.3. Benutzung vonMEncoder

Wie zuvor erwähnt, gibt es im Moment noch keine GUI für den MEncoder. Daher werde ich keine Screenshots zeigen und Du musst alles von Hand machen. Es ist ein Prozess der "3-Pass-Kodierung" genannt wird.

4.3.1. Kodierung der Tonspur

Der erste Schritt ist die Kodierung der Tonspur. Stelle sicher, dass du weisst, welche Sprache Du verwenden willst - Du benötigst entweder die Audio ID (d.h. 128 für den ersten Stream, 129 für den zweiten, usw.) oder den zwei-Buchstaben-Länder-Code (wie en für Englisch or de für Deutsch). Du kannst diese Codes durch Ausführen von MPlayer im Verbose-Mode ermitteln: mplayer -dvd 1 -v. Das Programm sollte eine Menge Zeilen ausgeben. Suche nach Zeilen die diesen ähneln: [open] audio stream: 0 audio format: ac3 language: en aid: 128
[open] audio stream: 1 audio format: ac3 language: de aid: 129
[open] audio stream: 2 audio format: ac3 language: es aid: 130

Hier habe ich drei Audio-Streams: Englisch, Deutsch, Spanisch und ihre IDs

Rufe nun MEncoder auf, um die Tonspur für dich zu kodieren
nice -+19 cat /space/*vob | nice-+19 mencoder -ovc frameno -o frameno.avi -oac mp3lame -lameopts abr:br=128 -alang de -
Hier ist eine Erklärung der verwendeten Kommandozeilen-Argumente:

Warte eine Weile und Du hast Deine Tonspur. MEncoder gibt auch einige Vorschläge für die Video-Bitrate an:
Recommended video bitrate for 650MB CD: 1845
Recommended video bitrate for 700MB CD: 1992
Recommended video bitrate for 800MB CD: 2287

Wie Du erkennst, sind diese Werte ziemlich hoch - aber das ist darauf zurückzuführen, dass eine Ally-McBeal-Folge nur 41 Minuten lang ist. Also würde ich zwei Episoden pro CD erzeugen und dem Video eine Bitrate von etwa 1000 geben.

4.3.2. Erstellen einer Vorabansicht (Erster Durchgang)

Nun ist es Zeit sich zu entscheiden, welcher Video-Codec verwendet werden soll. Ich nehme an, dass eine AVI-Datei mit einem der verschiedenen DivX-Encoder erstellt werden soll. MEncoder unterstützt DivX 4 oder DivX 5 (das gilt auch für Windows - Du hast entweder v4 oder v5 installiert) genauso wie XviD oder lavc. Obwohl die meisten von Euch nichts von libavcodec oder dem ffmpeg-projekt zuvor gehört haben, sei Dir angeraten dass lavc den Codecs DivX 4 or 5 weit überlegen ist und mindestens so gut ist wie XviD. Daher will ich nur Beispiele für lavc zur Verfügung stellen, zumal Du dafür keine speziellen Codecs zum späteren Abspielen benötigst. MPlayer spielt sie (natürlich) prima ab, und für Windows benötigst Du einfach DivX 5 (die kostenlose Ausgabe ist absolut ausreichend). Auf geht's.

Wir wollen nun die Kommandozeilen-Optionen zusammenstellen:

Füge die gesamte Kommandozeile zusammen:
nice -+19 mencoder -nosound -o /dev/null -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=1 -vop scale=640:480 -npp lb -ss 0:20 -endpos 0:30 /space/first.vob

4.3.3. Erstellen einer Vorabansicht (zweiter Durchgang)

Für dieses Schritt können wir den größten Teil der vorhergehenden Kommandozeile beibehalten. Natürlich ändern wir vpass=1 in vpass=2 um dem Encoder mitzuteilen, dass es diesmal der zweite Durchgang ist. Natürlich sollten wir diesmal die endgültige Ausgabe speichern und ersetzen daher -o /dev/null mit etwas Brauchbarem, z.B. -o ally-preview.avi.

Hier die Kommandozeile:
nice -+19 mencoder -oac copy -o ally-preview.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=2 -vop scale=640:480 -npp lb -ss 0:20 -endpos 0:30 /space/first.vob
Nachdem MEncoder fertig ist, sehen wir uns die Vorabansicht an. Berichtige, sofern nötig, die Einstellungen. Wiederhole die Erstellung der Vorabansicht, bis Du zufrieden damit bist.

4.3.4. Erstellen der endgültigen AVI-Datei (beide Durchgänge)

Die Aufrufe der endgültigen Optionen lassen einfach die Optionen -ss und -endpos weg. Unglücklicherweise kann MEncoder nicht mehrere Eingabe-Dateien von der Kommandozeile lesen. Daher verwenden wir das cat-Kommando. Gib einfach
cat /space/*vob | nice -+19 mencoder -oac copy -o /dev/null -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=1:vqmin=1:vqmax=31 -vop scale=640:480 -npp lb -
cat /space/*vob | nice -+19 mencoder -oac copy -o ally.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vhq:vpass=2:vqmin=1:vqmax=31 -vop scale=640:480 -npp lb -

ein.
Beachte, dass -ss scheinbar nicht zusammen mit der cat *vob | mencoder...-Variante funktioniert. Also muß für die Vorschau einfach die erste VOB-Datei als letztes Argument angegeben werden (siehe oben)

Nun geh und hol Dir ein Bier und ein gutes Buch.


Inhaltsverzeichnis   --> nächstes Kapitel   <-- vorheriges Kapitel  Diese Anleitung wurde von Moritz Bunkus geschrieben.