Workshop - Blu-Ray 3D Nach Side-By-Side (AVC)

download Workshop - Blu-Ray 3D Nach Side-By-Side (AVC)

of 24

Transcript of Workshop - Blu-Ray 3D Nach Side-By-Side (AVC)

Workshop: Blu-ray 3D nach Side-by-Side (AVC)

Workshop: Blu-ray 3D nach Side-by-Side (AVC)

Version 1.0 - 27.07.2010

0. Vorwort

Dieser Workshop bringt Euch bei, wie man aus einer Blu-ray 3D ein MPEG4-AVC kodiertes Video (x264) im Side-by-Side Format macht (1 File). Dieses Format beinhaltet die Videos fr das linke und rechte Auge zusammen in gestauchter Form in einem Vollbild. Jeder gngige 3D-TV kann dies darstellen, indem Ihr das 3D-Format manuell auf nebeneinander stellt.

Fr den Anfang empfehle ich Euch, ein kleines Video zum ben zu benutzen. Falls etwas nicht so klappt wie erwartet, msst ihr nicht zwischen jedem Arbeitsschritt ewig warten. Ein Trailer eignet sich z.B. sehr gut zum anfnglichen testen und sollte sich auf der einen oder anderen Scheibe sicherlich finden lassen.

Dieser Workshop baut in Teilen auf anderen (englischsprachigen) Tutorials auf, welche aber fr mich persnlich alle irgendwann nicht mehr weitergefhrt haben. Deshalb habe ich aus verschiedenen Tutorials und einzelnen Informationsfetzen nun einen kompletten Guide erstellt, der von Anfang bis Ende funktioniert. Ein brauchbares deutsches Tutorial gibt es bis Dato meiner Meinung nach nicht und mit den englischen die ich gefunden habe tut man sich doch sehr hart am Anfang, da noch einiges an Eigeninitiative ntig war um ans Ziel zu kommen. Auch fr Leute die sich ansonsten viel mit Videobearbeitung beschftigen, ist dieses Thema nicht ganz einfach.

Wenn man den Ablauf allerdings erst einmal verinnerlicht hat, dann macht es keinen groen Unterschied mehr ob nun 2D oder 3D vorliegt. Hat man die ersten 3-4 Videos erstellt, kommt man auch nach und nach sehr schnell hinter die Funktionsweise der einzelnen Programmablufe. Der Guide wurde von mir mit Windows 7 in 32-Bit und 64-Bit getestet und funktioniert auf beiden Systemen mit allen Tools gleichermaen. Meine persnliche Erfahrung war, das es unter x64 um einiges schneller geht als unter x86.

Das Ganze sieht erstmal komplizierter und umfangreicher aus als es ist. Also nicht abschrecken lassen. Hat man es ein, zweimal gemacht, geht das Ganze sehr schnell von der Hand. Auerdem sind viele Schritte schnell erledigt und erfordern keine lange Rechenzeit.

Viel Spa

Bentigte Programme

- MKVToolnix 4.1.1- MVC beta1- FFmpeg 0.6- TSPE 0.810 Beta (Achtung: Andere Versionen knnen Probleme machen!)- Avisynth 2.58- ffdshow beta 7- tsMuxeR 1.10.6- MeGUI 0.3.5- Matroska Splitter

Ich habe ein Paket geschnrt, in dem alle bentigten Programme enthalten sind. Ihr findet nach dem entpacken zwei Ordner vor (Arbeitsordner und Programme). Den Arbeitsordner kopiert ihr auf eine Festplatte bzw. Partition Euer Wahl (am besten dort wo am meisten Platz vorhanden ist). Einige Dateien aus dem Ordner Programme msst ihr installieren, andere lassen sich direkt aus dem Ordner starten. AviSynth, FFdshow und Co. bitte nur installieren falls noch nicht auf Eurem System vorhanden (Codecpack etc.). Alternativ zu diesen Programmen kann man auch ein Codecpack installieren, ich halte davon aber nichts, weil dies immer eine mgliche Fehlerquelle im Falle von Problemen sein kann.

Download

1. Datentrger auf Festplatte kopieren

Zu diesem Thema gebe ich aus naheliegenden Grnden keine weiteren Informationen. Fr nheres nutzt bitte Google oder fragt den neuesten Beta-Fuchs. Bedenkt bitte, das ihr mit dem aushebeln eines Kopierschutzes gegen geltendes Urherberrecht verstot. Wendet also diesen Workshop bitte nur auf nicht geschtztes Material an.

1.1 Video fr linkes und rechtes Auge ausfindig machen und in den Arbeitsordner kopieren

Die Bildgre wurde angepasst. Das Original Bild hat eine Auflsung von 831x482px .

Wie Ihr oben sehen knnt, sieht man in der Vorschau (Ordneransicht: groe Symbole) immer nur abwechselnd ein Video, dann wieder nur ein schwarzes Bild. Das jeweils Erste (welches man sehen kann) ist immer das Video fr das linke Auge, das direkt daneben (welches nur schwarz bzw. hier als oranges Htchen anzeigt) ist das Video fr das rechte Auge, welches den 3D-Part beinhaltet. Ihr knnt es deswegen nicht sehen und abspielen, da Euch der ntige MVC-Decoder fehlt, der im System verankert sein msste. Um zu berprfen ob es sich auch ganz sicher um das jeweils rechte Pendant handelt, vergleicht Ihr am besten die Laufzeit beider Videos. Ich persnlich mache das immer mit Media-Info, da ich nur mit der Maus drber zu fahren brauche um smtliche Inforamtionen zu sehen (siehe Screenshot). Stimmen die Laufzeiten berein, habt ihr die richtigen beiden Videos ausgewhlt. Im Screenshot gehren also z.B. unter anderem 00002.m2ts und 00003.m2ts zusammen. Die beiden zusammengehrigen Videos kopiert ihr nun in Euren Arbeistordner.

2. Beide Videospuren als RAW-Stream extrahieren

2.1 Videostream fr das linke Auge extrahieren

Wir starten das Programm TSPE 0.810 Beta (Achtung: ltere sowie neuere Versionen haben bei mir nicht richtig funktioniert ! Erspart Euch den rger und nehmt lieber gleich die 0.810 Beta).

ber das Ordnersymbol (1) whlt Ihr zuerst Euer Video, welches fr das linke Auge bestimmt ist. Danach klickt ihr auf Demux und whlt Demux RAW Streams? aus (2), so das ihr ein Hcken vor dem Eintrag habt.

In der Auswahlliste (3) entfernt ihr alle Hckchen auer den Eintrag mit der Videospur H.264/AVC. Dieser Schritt ist wichtig !

Bei Punkt (4) muss der Reiter auf EDL stehen. Achtet darauf, das unten rechts die Hckchen bei Fix: Tables? und Timecodes? nicht (!) aktiviert sind.

Zum Schlu bettigt ihr noch den Edit Button (5).

Das Video fr das linke Auge wird nun als RAW-Stream mit der Endung *.264 in dem Verzeichnis abgelegt wo sich auch Eure beiden *m2ts Dateien befinden. Jetzt schliet ihr das Programm TSPE 0.810 Beta (unbedingt erforderlich!) und ffnet es sogleich erneut.

2.2 Videostream fr das rechte Auge extrahieren

Nachdem wir das Programm neu gestartet haben, verfahren wir wie folgt, um den RAW-Stream aus dem rechten Video zu extrahieren.

Diesmal ffnen wir Unser *m2ts Video welches fr das rechte Auge bestimmt ist und die Differenz zum linken Auge beinhaltet. Dazu gehen wir genauso vor wie im vorherigen Schritt, jedoch mit einigen kleinen nderungen.

Wir whlen Unsere Datei wieder ber das Ordnersymbol (1), stellen unter Demux (2) erneut Demux RAW Streams? ein und whlen im Auswahlmen (3) diesmal den Eintrag welcher mit ITU-T Rec. beginnt. Alle anderen Hckchen sind abermals zu entfernen. Bei Punkt (4) switchen wird jetzt von EDL zu PES Line und beenden den Vorgang ber Edit (5).

2.3 Audiostream aus dem linken Video extrahieren

Der Audiostream bzw. smtliche Audiospuren befinden sich immer im Video fr das linke Auge. Wir extrahieren nun wie wie folgt die bentigte Tonspur aus dem Video. Dazu starten wir das Programm erneut.

Wir ffnen wie gehabt unser Video fr das linke Auge ber das Ordnersymbol (1) und whlen unter Demux (2) wieder Demux RAW Streams?. Im Auswahlmen (3) selektieren wir diesmal unsere Tonspur und entfernen alle brigen Eintrge wieder.

Die Registerkarte (4) muss nun wieder auf EDL gestellt werden, bevor ihr den Vorgang wie gewohnt mit Edit (5) beendet.

Nach diesen drei nahezu identischen Vorgngen solltet ihr nun in Eurem Arbeitsordner unter andrem folgende zwei Dateien vorfinden:

00039.Demux.1011.264 00040.Demux.1012.es

Die Datei mit der Endung *.264 ist immer der Videostream fr das linke Auge, die mit der Endung *.es der Videostream fr das rechte Auge, welcher die nformationen fr die stereoskopische Darstellung enthlt (Differenz). Da der rechte Videostream lediglich die Differenz zum linken enthlt, ist die Datei kleiner. Auerdem solltet ihr noch Eure Audiospur in dem Ordner wieder finden (*.ac3, *.dts).

Ihr benennt jetzt beide Dateien von Hand um. Aus der Datei mit der Endung *.264 wird left.h264 und aus der Datei mit der Endung *.es wird right.h264. Jegliche Abweichung von dieser Namensgebung fhrt zur Disfunktion im weiteren Verlauf, es sei denn, ihr ndert das Scipt decoder.cfg vorher entsprechend ab.

3. Konvertieren des Videos fr das rechte Auge nach *.yuv mittels Idecod.exe

Habt ihr beide Dateien wie oben beschrieben umbenannt, startet Ihr das Programm Idecod.exe, welches sich im selben Ordner befinden muss wie Eure Videostreams.

Das Programm rechnet nun eine Weile und belegt dabei temporr nicht unwesentlich Speicherplatz auf Eurer Festplatte (~ 10 GB pro Minute Video). Je nach Projektgre solltet ihr also keinen Mangel an Speicherplatz haben. Das Programm schliet sich nach Fertigstellung selbst.

Achtung: Startet das Programm wiedererwarten nicht oder nicht richtig, fehlt Euch vermutlich nur das Microsoft Visual C++ 2008 Redistributable Package. In dem Fall ladet ihr dieses hier herunter oder nehmt es aus dem bereitgestellten Paket und installiert es bevor ihr Idecod.exe erneut ausfhrt.

Ihr findet am Ende des Prozesses zwei weitere Dateien in Eurem Arbeitsordner, die wie folgt lauten sollten.

Code:

test_dec_ViewId0000.yuv

test_dec_ViewId0001.yuv

4. Aus den beiden *.yuv-Dateien eine *.h264 kodierte Datei fr das rechte Auge erzeugen

Ihr geht auf Start und ausfhren bzw. Programme / Dateien durchsuchen und tippt dort ein "CMD". Es ffnet sich die Konsole. Dort wechselt ihr in Euren Arbeitsordner.

Seid Ihr z.B. aktuell in C:\Users\Admin, gebt ihr nun Euren Laufwerkspfad (z.B. D:) ein. Dann wechselt ihr mit cd Euer Ordner (z.B. cd Project3D) in Euer Arbeitsverzeichnis wo smtliche Dateien und Programme liegen.Nun gebt Ihr folgende Kommandozeile ein bzw. kopiert Euch diese aus der beiliegenden Textdatei FFMpeg-Commandline.txt heraus , fgt sie mit der rechten Maustaste ein und drckt auf Enter (strg+v geht nicht).

Code:

ffmpeg.exe -s hd1080 -i test_dec_ViewId0001.yuv -vcodec libx264 -b 24560000 -bt 24560000 right_f.h264

Achtung: bearbeitet ihr Material, welches ursprnglich nur in 1280 x 720 vorliegt, msst ihr den Eintrag hd1080 auf hd720 ndern! Wenn es sich um Full-HD handelt, knnt ihr die Zeile unverndert bernehmen. Das Programm rechnet nun eine Weile.

Ihr solltet nach Abschluss des Vorgangs die Datei right_f.h264 in Eurem Arbeitsordner neu dazu bekommen haben. Damit haben wir nun endlich den Teil fr die stereoskopische Darstellung (rechtes Auge) kompatibel zur Weiterverarbeitung gemacht. Von nun an lsst sich das Ganze genauso weiter verarbeiten wie ein herkmmlicher 2D-Stream.

5. Bildwiederholungsrate (FPS) festlegen und nach *.mkv muxen mit mkvmerge GUI

Ihr ffnet nun mkvmerge GUI und whlt ber hinzufgen die Datei left.h264 aus Eurem Arbeitsordner. Das Programm beschwert sich nun, da es die Bildwiederholgsrate nicht automatisch erkennt. Ihr klickt den Dialog einfach mit OK weg und markiert Eure Videospur (MPEG-4 part 10 . . .), so dass diese blau hinterlegt ist (siehe o. Bild). Dann klickt Ihr auf die Registerkarte Formatspezifische Optionen und whlt dort bei BPS den Eintrag 24000/1001 aus. Damit setzen wir die Frames pro Sekunde auf 23,967 fest. Liegt Euer Originalvideo hingegen mit 60 Frames pro Sekunde vor, whlt ihr stattdessen 60000/1001. Nun klickt ihr unten links auf Muxen starten.

Sobald der Vorgang beendet ist, klickt ihr oben rechts auf alle entfernen und ladet hernach ber hinzufgen das rechte Video right_f.h264. Ihr setzt die BPS wieder auf den gewnschten Wert und speichert die Datei erneut ber Muxen starten.

Als Ergebniss habt ihr nun in Eurem Arbeitsordner zwei neue Dateien namens (left.mkv und right_f.mkv).

Dies sind nun die finalen Dateien, mit denen wir den endgltigen Encode erledigen. Sofern ihr 3D am PC-Monitor (z.B. mit dem Nvidia 3D-Vison-Kit) erlebt, knnt ihr das Video jetzt schon mit dem Steroscopic Player abspielen. Alle anderen zuvor erstellten Dateien knnt Ihr nun lschen um Speicherplatz freizugeben, falls bentigt. Passt aber auf, das ihr nicht versehentlich Programmdateien oder deren Konfig-Dateien erwischt! Auf dem unteren Screenshot sind die Dateien welche ihr nun bedenkenlos lschen knnt mit einem grnen Punkt markiert.

6. AviSynth-Script fr MeGUI erstellen

Um aus den beiden einzelnen *.mkv Streams nun ein stereoskopisches Side-by-Side Video zu erzeugen, brauchen wir ein kleines Script welches wie folgt aussieht (script.avs liegt dem Download bei!).

Code:

left = DirectShowSource("left.mkv", fps=23.976, audio=false, convertfps=true)

right = DirectShowSource("right_f.mkv", fps=23.976, audio=false, convertfps=true)

finish = StackHorizontal(left, right)

return(finish)

Ihr erstellt eine neue Textdatei mit dem Editor, kopiert die obigen Zeilen dort hinein und speichert das Ganze als script.avs in Eurem Arbeitsordner ab. Alternativ nehmt ihr einfach die script.avs aus dem Download-Paket und ndert sie ggfs. ab.

Achtung: handelt es sich bei Eurem Video um das Format 1280x720 mit 60 FPS, so msst ihr die beiden obigen Eintrge entsprechend ndern. Statt fps=23.976 muss dort dann stehen fps=59.940, was fr 60 Frames pro Sekunde steht. Ist es hingegen Full-HD Material mit 1920x1080, knnt ihr das Script wieder unverndert bernehmen.

7. Side-by-Side Video im *mkv-Container mit MeGUI erstellen

Wir starten nun das Programm MeGUI. Beim ersten Start prft das Programm Updates von diversen Programmteilen und Codecs und zeigt eine entsprechende Liste an. Ich empfehle Euch die Programmkomponenten zunchst auf die jeweils neueste Version updaten zu lassen.

Als erstes stellen wir sicher, das unter Encoder settings (1) das *x264 scratchpad* ausgewhlt ist. Desweiteren whlen wir bei File format (2) den Container MKV aus, bevor wir ber die Menkarte Tools den AVS Script Creator auswhlen.

ber Video Input (1) laden wir nun Unser Script (script.avs) aus Unserem Arbeitsordner. Sogleich ffnet sich das Video im Vorschaufenster, welches wir minimieren knnen, da es uns nur die Sicht verdeckt. Als nchstes aktivieren wir Resize (2) und tragen im ersten Feld die horizontale Auflsung Unseres Videoclips ein - also entweder 1920 oder 1280. Die vertikale Auflsung ergibt sich dann von selbst. Dann aktivieren wir Apply auto Preview (3) und erhalten in der Vorschau eine gestauchte Ansicht unseres Videos, welches der finalen Side-by-Side Darstellung entspricht. Wir wechseln nun auf die Registerkarte Filters und dort auf den Reiter AVI Source / DSSource.

Wir whlen unter Source type (1) die Option Progressive bzw. Interlaced (je nach Matrial) und vergewissern uns, das der Resize Filter (2) auf Lanczos (Sharp) gestellt ist. Dann speichern wir das neue Script ber den Button Save (3). Es ffnet sich abermals Unser Vorschaufenster, welches wir wieder minimieren.

Wir vergewissern uns nun ob der Einstellungen im Screenshot (!) und drcken den Config-Button (1) um die ntigen Einstellungen am x264-Codec vorzunehmen.

Zuerst aktivieren wir Show Advanced Settings (1). Dann legen wir unter Modes die Option Automated 2pass fest, damit wir Unser Video zwecks besserer Qualitt in zwei Durchgngen encodet wissen. Unter Bitrate (3) legen wir eine sinvolle, nicht zu niedrige Videobitrate fest. Ich empfehle bei 1080p nicht unter 10 MBit/s zu gehen und bei 720p nicht unter 6 MBit/s. Der AVC-Codec arbeitet sehr effizient, aber an der Bitrate sollten wir trotzdem nicht sparen, sofern wir gengend Platz haben. Will man eine bestimmte Dateigre erreichen, so empfiehlt sich dafr ein Bitratenrechner.

Wir klicken oben auf den nchsten Reiter Frame-Type.

Bei Number of B-Frames (1) tragen wir am besten einen Wert von 1-3 ein. Hhere Werte (max. 16) bringen keinen sichtbaren Vorteil mehr und knnen diverse Player aus dem Tritt bringen. Adaptive B-Frames knnen wir auf 1-Fast stellen um die Rechenzeit nicht unntig zu beanspruchen. Qualittsfanatiker knnen auch hhere Werte whlen. Unter Maximum GOP Size stellen wir einen Wert von 250 / 25 ein. Einige Quellen empfehlen sich nach der Bildrate der verwendeten Quelle zu richten (z.B. Blu-ray = 23,976 FPS = GOP 240 / 24). Denn Sinn dessen hab ich bislang noch nicht erkannt.

Bei Number of Reference Frames (Re-Frames) mssen wir wieder vorsichtig sein. Ein Wert ber 5 bringt kaum noch Vorteile und verlngert die Rechenzeit um ein vielfaches. Desweiteren haben viele Standalone-Player und auch die PS3 Probleme mit mehr als 4 Re-Frames. Aus Kompatiblittsgrnden verwenden wir hier am besten 2-3 Re-Frames. Die Option CABAC lassen wir aktiviert, da sie optisch bessere Ergebnisse liefert. Gleichermaen bentigt sie jedoch beim abspielen auch mehr Rechenleistung. Das spielt in dem Fall jedoch keine Rolle.

Den nchsten Reiter Rate Control lassen wir unberhrt und wechseln direkt zur Registerkarte Analysis.

Wir bernehmen die Einstellungen wie im Screenshot zu sehen. Auf die Deteils gehe ich spter noch ein. Grundstzlich gilt aber, Ihr knnt bei allen markierten Optionen auch hhere Werte nehmen. Dies verlngert die Rechenzeit, kann aber mitunter bessere Ergebnisse bringen. Aus Kompatiblittssicht knnt Ihr hier keine falschen Werte nehmen. Wir wechseln auf den letzten Reiter Misc.

Hier ist nur wichtig den AVC Level auf Level 4.1 zu setzen und bei AVC Profiles auf High Profile zu gehen. Wir beenden die Einstellungen nun mit OK (3). Die vorgenommen Einstellungen bleiben jetzt im Scratchpad gespeichert bis Ihr sie wieder verndert. Ihr braucht diesen Vorgang also nicht jedesmal wiederholen, wenn Ihr Eure Videos immer mit denselben Settings encoden wollt.

Wir whlen nun linkerseits den Button Enqueue und die Registerkarte Queue (1).

Wir sehen nun Unsere Auftrge in der Warteschlange (beide Durchgnge) und drcken abschlieend den Start-Button (2). Wenn MeGUI fertig ist mit dem encoden, knnen wir es schlieen. Nun finden wir eine weitere Datei namens script_new.mkv in Unserem Arbeitsordner vor. Dies ist das (fast) fertige Side-by-Side Video - fast fertig, weil momentan noch ohne Tonspur. Wir starten deshalb nun das Programm tsMuxer.

Wir whlen ber add (1) zuerst unser neues Videofile (script_new.mkv) und direkt danach unsere Audiospur welche wir in Schritt 2.3 demuxt haben. Bei Language (2) knnen wir optional noch einen Flag fr die Sprache setzen, was aber nicht ntig ist. Unter Output (3) stellen wir jetzt noch auf TS muxing bzw. M2TS muxing, je nachdem mit welchem Format Eure Gerte besser klar kommen. Die meisten Gerte beherrschen den TS-Container, einige auch M2TS oder gar MKV. Wollt ihr lieber bei *.mkv bleiben, verwendet einfach MKVMergeGUI statt den tsMuxer. Wir klicken abschlieend auf Start muxing und sind fertig!

In Unserem Arbeitsordner finden wir nun das fertige Video (script_new.ts). Das File knnen wir jetzt noch sinvoll umbenennen und auf unserem 3D-TV oder Player in 3-D als Side-by-Side abspielen.