x264-Video-Kodierung mit Gordian Knot - Doom9 | Gleitz DVD
Transcrição
x264-Video-Kodierung mit Gordian Knot - Doom9 | Gleitz DVD
Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 x264-Video-Kodierung mit Gordian Knot Ein Tutorial von Andreas Unterweger aka Dust Signs Unter Verwendung von Gordian Knot 0.35.0 (http://gordianknot.sf.net), VideoLAN x264 Rev. 255A (H.264/AVC-Encoder, http://www.videolan.org/x264.html) und ffdshow vom 9.6.2005 (H.264-Decoder, http://x264.nl). Präambel Dieses Tutorial soll die Erstellung von H.264-kodierten Videos in Gordian Knot demonstrieren. Es wird prinzipiell nur die Konvertierung von MPEG2-Eingangsmaterial gezeigt (sprich herkömmliche DVDs). Wichtiger Hinweis: in Schritt 1 wird ein Programm (DVD Decrypter) verwendet, das in der Lage ist, gängige Kopierschutzverfahren zu knacken, was in einigen Ländern gegen das Urheberrecht verstößt. Es sollten in solchen Fällen daher nur DVDs mit DVD Decrypter dekodiert werden, die über keinerlei Kopierschutz verfügen. Ich betone ausdrücklich, dass ich für durch die Anwendung dieses Tutorials entstandene Urheberrechtsverletzungen in keinster Weise haftbar gemacht werden kann. Schritt 0: Die Theorie Zuerst soll der prinzipielle Ablauf des „Rippens“ erläutert werden: zuerst wird das vorliegende Videomaterial von der DVD auf die Festplatte kopiert und nachbearbeitet, um die Tonspuren zu extrahieren und die VOB-Dateien (meist mehrere) zu indizieren. Anschließend werden die Tonspuren kodiert, um mehr Platz für die Videodaten in der endgültigen Filmdatei zu gewinnen. Aufgrund der Größe der Tonspuren und der vorgegebenen Größe der zu erstellenden Filmdatei kann die Bitrate für die Videodaten bestimmt werden. Nach einigen Einstellungen (z.B. Anpassung der Auflösung für gute Kodierungsergebnisse) wird das Videomaterial mit dem H.264-Encoder kodiert. Zum Schluss werden die Audio-Daten „gemuxt“, d.h. ins Video eingefügt. Schritt 1: Der richtige Film Nachdem alle notwendigen Programme wie eingangs aufgelistet installiert worden sind, wird Gordian Knot gestartet. Es geht in diesem ersten Schritt um die Auswahl des Films von der DVD und das Extrahieren der entsprechenden VOB-Dateien auf die Festplatte. Dazu wird zuerst die DVD ins Laufwerk eingelegt und anschließend über die erste Schaltfläche in Gordian Knot (vgl. Bild links) DVD Decrypter gestartet. Die erste Einstellung in DVD Decrypter ist die Änderung des Modus: im Menü Mode wird IFO ausgewählt – dadurch wird erreicht, dass die DVD in Baumstruktur, gruppiert nach den IFODateien angezeigt wird. Die dazugehörigen VOB-Dateien wählt DVD Decrypter in diesem Modus automatisch aus. Nun geht es an die Auswahl des richtigen „Films“ (auf der DVD befindet sich ja auch der Vorspann, eventuelle Making-Ofs, Trailer etc.). DVD Decrypter wählt standardgemäß im IFO-Modus die längste Videodatei automatisch aus. Dabei handelt es sich in 99% der Fälle auch um den richtigen Film. Meist ist der richtige Film auch ganz einfach an der Länge zu erkennen – Trailer und Menüs haben meistens zwei bis drei Minuten Spieldauer (maximal). Nach Auswahl des richtigen Films müssen die entsprechenden VOB-Dateien auf der Festplatte gespeichert werden. Dazu wird ein Verzeichnis gewählt (vgl. Bild oben) auf der große Button unten im Fenster gedrückt und ca. 20 Minuten gewartet (je nach Laufwerk). Andreas Unterweger H.264 mit Gordian Knot Seite 1 von 6 Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 Schritt 2: Audioextraktion Nun müssen die Tonspuren extrahiert und die VOBs indiziert werden. Dazu wird DGIndex aus Gordian Knot heraus gestartet (vgl. Bild links). Nach dem Starten ist es notwendig, einige Einstellungen vorzunehmen. Im Menü Audio wird zuerst Output Method auf Demux All Tracks gestellt und anschließend im Menü Video iDCT Algorithm auf 32-Bit SSE MMX gestellt. Ersteres ist notwendig, um wirklich alle Audiotracks aus den VOB-Dateien zu extrahieren. Anschließend müssen die entsprechenden VOB-Dateien ausgewählt werden. Dazu wird Open im Menü File ausgewählt und alle VOB-Dateien in dem im letzten Schritt gewählten Verzeichnis markiert und geöffnet (Open). Danach wird per Save Project im Menü File der Ausgabepfad der Audiodateien bestimmt und das Extrahieren gestartet. Dieser Schritt wird je nach Festplatten-, CPU-Geschwindigkeit, Anzahl der Tonspuren und Filmlänge ca. 10 Minuten in Anspruch nehmen. Schritt 3: Audiokodierung Nun da die Tonspuren extrahiert wurden, müssen sie konvertiert werden. Prinzipiell ist es zwar möglich, die extrahierten (im AC3Format) vorliegenden Tonspuren zu verwenden; diese sind allerdings meist um die 400 MB groß, sodass sie zu viel Platz in der fertigen Filmdatei einnehmen würden. Um die Tonspuren mit Gordian Knot kodieren zu können, muss zuerst das in Schritt 2 erstellte d2v-File geöffnet werden. Dies geschieht über den Open-Button im unteren linken Teil des Gordian Knot-Fensters (vgl. Bild links). Es öffnet sich nun ein Fenster mit einer Vorschau des Videomaterials. Im Menü View muss zur korrekten Darstellung Resized gewählt werden. Nach einem Wechsel zur Registerseite Encoder im Gordian Knot-Hauptfenster und anschließendem Klicken auf den Add-Button öffnet sich ein Fenster, in dem die notwendigen Einstellungen zur Kodierung der Tonspuren vorgenommen werden können. Durch Select kann eine AC3-Datei ausgewählt werden. Um sicherzugehen, dass die richtige Tonspur ausgewählt wurde, gibt es zwei Möglichkeiten: einerseits kann mit einem entsprechenden AC3-Decoder-Filter die Datei in einem Mediaplayer geöffnet und abgespielt werden, andererseits ist es möglich, die korrekte Tonspur durch den Dateinamen zu finden, sofern nur eine auf der DVD vorhanden ist. Aus dem Dateinamen lässt sich die Bitrate ablesen – je höher die Bitrate, desto besser die Qualität. Beispiel: troy AC3 T01 3_2ch 384Kbps DELAY -8ms.ac3 Dieser Dateiname sagt folgendes über die Tonspur aus: sie ist mit AC3 kodiert und ist die erste Tonspur der DVD. Sie hat zudem 2 Kanäle (Stereo) und eine Bitrate von 384 Kilobit/s. Die letzte Information (-8 ms) deutet auf eine Verschiebung der Tonspur von 8ms zum Videomaterial hin. Dieses Zeitintervall kann – sofern es falsch ist – durch Nachbearbeiten des fertigen Films korrigiert werden, um eine korrekte Synchronisation von Bild und Ton sicherzustellen. Nach Auswahl der Datei muss entschieden werden, mit welcher Bitrate die Tonspur kodiert werden soll. Hier ist eine Auswahl zwischen variabler und konstanter MP3-Bitrate möglich; variable Bitraten haben den Nachteil eines größeren Overheads in der fertigen Datei, was aber meist durch die kleineren Dateigrößen eben durch die variable Bitrate kompensiert wird. 128 Kilobit sind meist ausreichend; bereits bei 96 Kilobit sind Kompressionsartefakte hörbar, d.h. Unterschiede zur originalen Tonspur feststellbar. Nach einem Druck des Add Audio-Job to Encoding Queue (no Video !)-Buttons schließt sich das Fenster. Anschließend muss der Start Encoding-Button gedrückt werden; das Kodieren der Tonspur beginnt. Je nach Filmlänge (bzw. Länge der Tonspur) dauert das zwischen 15 und 20 Minuten. Für eine zweite Tonspur kann analog vorgegangen werden. Zu beachten ist hierbei, dass eine zweite Tonspur weniger Platz für Videodaten und damit eine schlechtere Qualität im fertigen Film bedeutet. Andreas Unterweger H.264 mit Gordian Knot Seite 2 von 6 Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 Schritt 4: Videokodierung Der nun folgende Schritt ist der wohl wesentlichste im ganzen „Ripping“-Prozess; es geht um das Kodieren der Videodaten. Dabei soll durch möglichst gute Platzausnutzung ein Maximum an Qualität in der fertigen Filmdatei erreicht werden. Da dieser Schritt einige komplexere Unterpunkte aufweist, habe ich ihn in mehrere Zwischenschritte unterteilt (4a, b, c etc.). Schritt 4a: Allgemeine Einstellungen Vor dem eigentlichen Kodieren des Videomaterials müssen diverse Einstellungen getroffen werden, um einerseits sicherzustellen, dass in H.264 kodiert wird und andererseits der richtige Ausgabecontainer verwendet wird. Zu allererst wird auf die Bitrate-Registerseite im Gordian Knot-Hauptfenster gewechselt. Die erste notwendige Einstellung ist die Wahl des richtigen Encoders. Da in diesem Tutorial im H.264-Format kodiert werden soll, wird als Video-Codec (rechts oben) x264 gewählt. Als Container-Format (links oben) wird AVI gewählt, als Berechnungsmodus (Mode) Calculate Average Bitrate. Letzteres ist notwendig, um Gordian Knot die Bitrate für die Videodaten bei vorgegebener Dateigröße (die Größe der fertigen Filmdatei) zu berechnen. Schritt 4b: Audio-Einbindung Desweiteren ist es notwendig, Gordian Knot darüber zu informieren, welche Tonspuren mit welchen Dateigrößen eingebunden werden sollen. Dazu wird für die erste Tonspur bei Audio A unten links (vgl. Bild) auf den Size-Modus umgestellt und über Select die entsprechende MP3-Datei gewählt. In diesem Schritt ist vor allem darauf zu achten, dass die richtige Datei gewählt wird. An der Größe ist meist erkennbar, ob dem so ist. Die angezeigte Größe sollte bei einem zweistündigen Film mit 128 Kilobit/s (konstant) etwa 100 MB groß sein; im Bild links zu sehen ist ein Film mit mehr als zweieinhalb Stunden Laufzeit – daher die größere Audiodatei. Für eine eventuelle zweite Tonspur ist Audio B (weiter rechts) zu verwenden – analog zu Audio A. Ein äußerst wichtiger Punkt ist an dieser Stelle das Berechnen des Overheads der Tonspuren. Dazu wird bei den Overhead-Einstellungen (vgl. Bild rechts) für Audio 1 und Audio 2 cbr mp3 ausgewählt. Ist nur eine Tonspur vorhanden, wird dementsprechend nur ein Overhead berechnet (Audio 2 auf No audio). Wurde keine konstante, sondern eine variable Bitrate beim Kodieren der Tonspuren verwendet, muss auch das berücksichtigt werden. Dazu wird an Stelle von cbr mp3 das darunter stehende vbr mp3 ausgewählt. Gordian Knot berechnet nun aus den Angaben automatisch den Overhead der Tonspuren und passt damit die Video-Bitrate entsprechend an. Wie in Schritt 3 erwähnt sorgen Tonspuren mit variabler Bitrate für mehr Overhead, sind aber selbst kleiner, wodurch sich das zumeist aufhebt. Natürlich kann das Kodieren der Audiodaten auch automatisch vor dem Kodieren der Videodaten erledigt werden. Dazu wird bei Audio A der Bitraten-Modus gewählt Schritt 3 ausgelassen. In Schritt 4e wird dann die Bitrateneinstellung getätigt (wie ehemals in Schritt 3) anstatt nur Just Mux zu wählen. Andreas Unterweger H.264 mit Gordian Knot Seite 3 von 6 Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 Schritt 4c: Auflösung und Dateigröße Der wohl wichtigste Schritt des kompletten Kodierungsprozesses ist der der Wahl der Auflösung und der Dateigröße. Dieser Schritt erfordert viel Erfahrung, kann aber anhand einiger Faustregeln sehr einfach abgewickelt werden. Zu allererst soll eine Dateigröße gewählt werden. Standardgemäß sind das 1400 MB (2x 700 MB). Für bis zu zweistündige Filme mit 2 Tonspuren eignet sich diese Größe sehr gut, für kürzere Filme (ca. anderthalb Stunden Länge) und nur einer Tonspur sollte auch eine CD mit 700 MB genügen. Unter Total Size (rechts oben) kann die Größe einer CD und die Anzahl der CDs gewählt werden. Die Option Split final file into CDs sollte bei mehreren CDs aktiviert werden – Gordian Knot kümmert sich dann selbst um das Aufteilen der Filmdatei in zwei oder mehr CD-große Teile (je nach Einstellung). Manuell ist das Aufteilen in Appendix 2 beschrieben. Anschließend geht es um die Einstellung der Auflösung. Dazu wird zur Resolution-Registerseite gewechselt. Der erste Schritt ist das Drücken des Auto Crop-Buttons (vgl. Bild rechts), um überflüssige schwarze Ränder automatisch entfernen zu lassen. Anschließend müssen W-Modul und H-Modul (unten Mitte) auf 16 gestellt werden. Das ist notwendig, da H.264 ein Eingangsformat benötigt, dessen Höhe und Breite ein Vielfaches von 16 sind bzw. dessen Höhe und Breite modulo 16 0 ergibt. Nun gilt es, eine Auflösung zu finden, die folgendes gewährleistet: erstens sollte der Resize-Fehler (Fehler beim Verkleinern) möglichst gering sein (Höhe und Breite müssen ja beide ein Vielfaches von 16 sein wodurch Verzerrungen entstehen), zweitens sollte die Auflösung nicht zu klein sein, damit man in der fertigen Filmdatei auch Details gut erkennen kann und drittens sollte sich die Qualität auf einem akzeptablen Niveau befinden. Diese Punkte können über drei von Gordian Knot angezeigten Indikatoren abgelesen werden (vgl. Bild, jeweils nach dem oberen Absatz nummeriert). Der mit 3 beschriftete Indikator im Bild stellt ein Maß für die Qualität im Groben dar. Er bezeichnet, wie viele Bits pro Pixel in einem Frame verfügbar sind. Dieser Werte sollte (als Anhaltswert) um 0,3 liegen – sehr viel mehr bedeutet eine Verschwendung von Dateigröße bzw. Bitrate, ein sehr viel kleinerer Wert eine schlechte Qualität mit vielen Kompressionsartefakten. Mit H.264 ist es allerdings möglich, teilweise sogar bei 0,24 oder weniger nahezu Originalqualität zu erzielen – abhängig vom Eingangsmaterial. Der Aspect Error (1) sollte möglichst gering sein, +/-2% sind meist noch akzeptabel. Durch Verschieben des Reglers oder direktes Ändern der Auflösung bei 2 ändern sich alle anderen Werte mit. Es gilt nun, einen möglichst guten Kompromiss zwischen den eingangs erwähnten Indikatoren zu finden. Ist die Auflösung bereits sehr klein eingestellt und der Bits/(Pixel*Frame)-Wert noch immer sehr niedrig, sollte ein Vergrößern der Enddatei-Größe oder das Entfernen einer Tonspur in Erwägung gezogen werden. Andreas Unterweger H.264 mit Gordian Knot Seite 4 von 6 Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 Schritt 4d (optional): Optimierung mit Kompressionstest Der Bits/(Pixel*Frame)-Wert kann durch eine Analyse des Eingangsmaterials weiter optimiert werden. Liegt dieser z.B. deutlich höher als 0,3 (wie im oberen Bild der Fall), kann durch Verringern der Auflösung bzw. Erhöhen der Bits/(Pixel*Frame) ein deutlicher Qualitätsgewinn erzielt werden. Zu diesem Zweck wird ein so genannter Kompressionstest (Compressibility Test) mit einem Teil des Videomaterials durchgeführt, um dessen Bits/(Pixel*Frame)-Wert zu bestimmen. Dazu wird im Videofenster auf Save & Encode geklickt und im erscheinenden Fenster Use beim Kompressionstest ausgewählt (vgl. Bild oben links). Meist reichen 1-2% des Eingangsmaterials aus, 5% ermöglichen eine noch bessere Abschätzung. Zum Abschluss wird Now gedrückt. Im Anschluss startet der Kompressionstest und fügt die ermittelten Bits/(Pixel*Frame) wie im unteren Bild von Schritt 4c ersichtlich im Hauptfenster unten rechts ein. Links davon wird angezeigt, wie viel Prozent der Bits/(Pixel*Frame) durch die aktuellen Einstellungen abgedeckt werden. Dieser Wert sollte zwischen 75 und 80% liegen. Weit darunter ergibt eine schlechte Qualität, weit darüber eine Platz- bzw. Bitratenverschwendung. Schritt 4e: Letzte Einstellungen Nun da alle wichtigen Einstellungen getätigt wurden, müssen letzte Parameter für den Kodierungsprozess gesetzt werden. Dazu wird Save & Encode im Videofenster gewählt, wodurch sich ein weiteres Einstellungsfenster öffnet. Normalerweise sollten hier die Standardeinstellungen beibehalten werden; es sei denn, der zu kodierende Film ist alt und hat dadurch eine schlechtere Qualität. In diesem Fall sollte – je nach Bildrauschen – ein leichter oder mittlerer Rauschfilter (Little Noise bzw. Medium Noise) gewählt werden. Der Resize Filter ist normalerweise mit Lanczos (Sharp) sehr gut konfiguriert; sind weichere Kanten erwünscht, sollte Soft Bicubic gewählt werden. Ein weiteres Mal muss nun der Save & Encode-Button gedrückt werden; ein AVS-Skript zur Kodierung des Films wird gespeichert; danach erscheint das letzte Konfigurationsfenster. Hier ist zu beachten, dass bei beiden Tonspuren (sofern zwei vorhanden sind) Just Mux gewählt wird – ansonsten hat der fertige Film keinen Ton. Anschließend muss auf der x264-Registerseite einmal der First Pass und einmal der Second Pass-Button angeklickt und das erscheinende Codec-Fenster mit OK bestätigt werden. Dadurch werden die Einstellungen des H.264-Encoders gespeichert. Ich möchte an dieser Stelle nicht auf die vielfältigen Möglichkeiten des H.264-Encoders eingehen – die Einstellungsmöglichkeiten sind zu zahlreich, um sie hier alle zu erläutern. Es sei erwähnt, dass neben 2-Pass-Encoding auch 1-Pass-Encoding möglich ist. 2-PassEncoding dauert zwar doppelt so lang, ist aber durch das zusätzliche Analysieren (1. Pass) um einiges effektiver. Rechts oben kann die Anzahl der Passes eingestellt werden. Schritt 4f (optional): Frame Server Credits Manchmal ist es nicht notwendig, den Abspann (Credits genannt) in guter Qualität zu kodieren – das spart Bitrate für den Rest des Films. Das kann durch Setzen des Abspannbeginns im Videofenster an der entsprechenden Position und anschließendem Drücken des Set Credits Start-Buttons geschehen. Im in Schritt 4e erwähnten Fenster wird dann bei Frame Server Credits das gespeicherte AVS-Skript bei Select angegeben. Schritt 4g: Start Ein letztes Add Job to Encoding Queue und ein Druck auf Start Encoding im Hauptfenster auf der Encoder-Registerseite schließen die Einstellungen für den Video-KodierungsProzess ab. Der Video-Kodierungs-Prozess ist der langwierigste Teil des „Rippens“. Je nach Prozessor dauern 2 Passes zwischen 6 und 24 Stunden (eventuell auch länger). Andreas Unterweger H.264 mit Gordian Knot Seite 5 von 6 Andreas Unterweger H.264 mit Gordian Knot Stand: 14.6.2005 Appendix 1: Untertitel Hin und wieder sind Untertitel in einem Film erwünscht. Gordian Knot bietet mit VobSub Rip im Apps-Ordner im Startmenü unter Gordian Knot die Möglichkeit, Untertitel in den fertigen Film zu inkludieren. Die Verwendung von VobSub Rip möchte ich an dieser Stelle nicht erläutern; der Assistent vereinfacht das Extrahieren der Untertitel zum einen, zum anderen gibt es auch hierzu Tutorials. Es sei nur gesagt, dass das Extrahieren der richtigen Untertitel gar nicht so leicht ist, wie es im ersten Moment scheint; denn herauszufinden, ob die richtigen Untertitel (und z.B. nicht Spanisch für Hörgeschädigte) gewählt worden sind, kann man meist nur durch Ansehen des Films mit den Untertiteln in Gordian Knot. Nach Extraktion der Untertitel in ein IDX-File muss dieses in Gordian Knot so eingefügt werden, dass die Untertitel in der fertigen Filmdatei zu sehen ist. Dazu wird im ersten Einstellungsfenster, das in Schritt 4e erwähnt wird, bei Subtitles (VobSub) der Button Select VobSub Files gedrückt und das IDX-File ausgewählt. Wichtig ist hierbei, dass das Häkchen neben dem Button in jedem Fall gesetzt ist – ansonsten werden die Untertitel nicht hinzugefügt. Um festzustellen, ob die richtigen Untertitel hinzugefügt wurden, kann der PreviewButton unten verwendet werden. Durch Abspielen des Videos (kein Ton!) kann festgestellt werden, ob die richtigen Untertitel ausgewählt wurden. Zur Einstellung von Farbe, Schriftart, Größe etc. der Untertitel muss im Gordian KnotHauptfenster auf der Subtitles / Chapters-Registerseite unter der Configure-Button gedrückt werden. Dieser Schritt ist optional; wird hier nichts verändert, werden die Standardeinstellungen von VobSub verwendet. Durch Öffnen des IDX-Files mit dem Open-Button können die Einstellungen (Schriftart, Position, Glättung, Farbe etc.) nach Belieben angepasst werden. Durch einen Klick auf OK werden die Einstellungen gespeichert und das Fenster geschlossen. Zum nachträglichen Synchronisieren und Aufteilen der Untertitel, wenn der fertige Film auf mehrere CDs aufgeteilt wird, kann auf der gleichen Registerseite durch die entsprechenden Buttons geschehen. Appendix 2: Nachträgliches Aufteilen in CDs Mit VirtualDubMod (ebenfalls zu finden im Startmenü unter Apps, vgl. Appendix 1) steht ein ausgereiftes Videobearbeitungsprogramm zur Verfügung, das auch in der Lage ist, einen Film nachträglich in CD-große Dateien aufzuteilen. Dazu wird zuerst die Filmdatei über Open Video File im Menü File geöffnet. Anschließend wird im Video-Menü Direct stream copy ausgewählt, da der Film ja nur aufgeteilt und nicht komplett neu kodiert werden soll. Anschließend wird Save as im Menü File gewählt und die Zieldatei angegeben. Unten im Dialog muss Segment output file aktiviert werden – im aktivierten Eingabefeld darunter kann nun die Dateigröße pro Teil angegeben werden (z.B. 700 MB für CD-Größe). Epilog Das Kodieren von H.264-Videomaterial mit Gordian Knot geht relativ schnell und einfach. Durch die richtigen Einstellungen kann eine äußerst passable Qualität im fertigen („gerippten“) Film erreicht werden. Prinzipiell unterscheidet sich das Vorgehen beim Kodieren von H.264 nicht von DivX oder XviD – die Qualität von H.264 ist nur um einiges besser. Ein Wort noch zu Filmen mit Überlängen: für Filme wie Der Herr der Ringe (v.a. Special Extended Editions) sind meist mehrere CDs notwendig, um eine akzeptable Qualität zu erreichen. Mehrere Tonspuren benötigen aufgrund der Länge sehr viel Platz. Zum Abspielen der H.264-Videos ist prinzipiell ein schneller Rechner erforderlich – Details sind den Readmes bzw. Einstellungsfenstern des eingangs erwähnten Decoders zu entnehmen. Zur Wiedergabe der Dateien eignet sich prinzipiell jeder Mediaplayer; ich empfehle an dieser Stelle Zoom Player (http://www.inmatrix.com/zplayer/). Andreas Unterweger H.264 mit Gordian Knot Seite 6 von 6