Plug & Play kompatibel im
TS-Container für alle gängigen 3D-Fernseher.
Version
1.0 - 27.07.20100. 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 für das linke und rechte
Auge zusammen in gestauchter Form in einem Vollbild. Jeder gängige
3D-TV kann dies darstellen, indem Ihr das 3D-Format manuell auf
nebeneinander stellt.
Für den Anfang empfehle ich Euch, ein kleines Video zum üben zu
benutzen. Falls etwas nicht so klappt wie erwartet, müsst ihr nicht
zwischen jedem Arbeitsschritt ewig warten. Ein Trailer eignet sich
z.B. sehr gut zum anfänglichen 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 für mich persönlich alle irgendwann
nicht mehr weitergeführt 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 nötig
war um ans Ziel zu kommen. Auch für Leute die sich ansonsten viel
mit Videobearbeitung beschäftigen, ist dieses Thema nicht ganz
einfach.
Wenn man den Ablauf allerdings erst einmal verinnerlicht hat, dann
macht es keinen großen 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
Programmabläufe. Der Guide wurde von mir mit Windows 7 in 32-Bit
und 64-Bit getestet und funktioniert auf beiden Systemen mit allen
Tools gleichermaßen. Meine persönliche 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. Außerdem sind
viele Schritte schnell erledigt und erfordern keine lange
Rechenzeit.
Viel Spaß
Benötigte
Programme
- MKVToolnix 4.1.1
- MVC beta1
- FFmpeg 0.6
- TSPE 0.810 Beta (Achtung: Andere Versionen können Probleme
machen!)
- Avisynth 2.58
- ffdshow beta 7
- tsMuxeR 1.10.6
- MeGUI 0.3.5
- Matroska Splitter
Ich habe ein Paket geschnürt, in dem alle benötigten 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 müsst 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 mögliche Fehlerquelle im Falle von Problemen sein
kann.
Download1. Datenträger auf Festplatte
kopieren
Zu diesem Thema gebe ich aus naheliegenden Gründen keine weiteren
Informationen. Für näheres nutzt bitte Google oder fragt den
neuesten Beta-Fuchs. Bedenkt bitte, das ihr mit dem aushebeln eines
Kopierschutzes gegen geltendes Urherberrecht verstoßt. Wendet also
diesen Workshop bitte nur auf nicht geschütztes Material an.
1.1 Video für linkes und rechtes
Auge ausfindig machen und in den Arbeitsordner kopieren

Wie Ihr oben sehen könnt, sieht man in der Vorschau
(Ordneransicht: große Symbole) immer nur abwechselnd ein Video,
dann wieder nur ein schwarzes Bild. Das jeweils Erste (welches man
sehen kann) ist immer das Video für das linke
Auge, das direkt daneben (welches nur schwarz bzw. hier als oranges
Hütchen anzeigt) ist das Video für das rechte Auge, welches den
3D-Part beinhaltet. Ihr könnt es deswegen nicht sehen und
abspielen, da Euch der nötige MVC-Decoder fehlt, der im System
verankert sein müsste. Um zu überprüfen ob es sich auch ganz sicher
um das jeweils rechte Pendant handelt, vergleicht Ihr am besten die
Laufzeit beider Videos. Ich persönlich mache das immer mit
Media-Info, da ich nur mit der Maus drüber zu fahren brauche um
sämtliche Inforamtionen zu sehen (siehe Screenshot). Stimmen die
Laufzeiten überein, habt ihr die richtigen beiden Videos
ausgewählt. Im Screenshot gehören also z.B. unter anderem
00002.m2ts und 00003.m2ts zusammen. Die beiden zusammengehörigen
Videos kopiert ihr nun in Euren Arbeistordner.
2. Beide Videospuren als RAW-Stream
extrahieren2.1 Videostream für 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) wählt Ihr zuerst Euer
Video, welches für das linke Auge bestimmt ist. Danach klickt ihr
auf
Demux und wählt
Demux RAW
Streams? aus (2), so das ihr ein Häcken vor dem Eintrag
habt.
In der
Auswahlliste (3) entfernt ihr alle Häckchen
außer 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 Häckchen bei Fix: Tables? und
Timecodes?
nicht (!) aktiviert sind.
Zum Schluß betätigt ihr noch den
Edit Button
(5).
Das Video für 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 schließt ihr das Programm
TSPE 0.810 Beta (unbedingt erforderlich!) und öffnet es sogleich
erneut.
2.2 Videostream für 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 für
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 wählen Unsere Datei wieder über das
Ordnersymbol (1), stellen unter
Demux (2) erneut
Demux RAW
Streams? ein und wählen im
Auswahlmenü
(3) diesmal den Eintrag welcher mit
ITU-T Rec.
beginnt. Alle anderen Häckchen 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. sämtliche Audiospuren befinden sich immer im
Video für das linke Auge. Wir extrahieren nun wie wie folgt die
benötigte Tonspur aus dem Video. Dazu starten wir das Programm
erneut.

Wir öffnen wie gehabt unser Video für das linke Auge über das
Ordnersymbol (1) und wählen unter
Demux (2) wieder
Demux RAW
Streams?. Im
Auswahlmenü (3) selektieren
wir diesmal unsere Tonspur und entfernen alle übrigen Einträge
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 Vorgängen 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 für das linke Auge, die mit der Endung
*.es der Videostream für das rechte Auge, welcher
die Ínformationen für die stereoskopische Darstellung enthält
(Differenz). Da der rechte Videostream lediglich die Differenz zum
linken enthält, ist die Datei kleiner. Außerdem 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 führt zur Disfunktion im weiteren Verlauf, es sei
denn, ihr ändert das Scipt
decoder.cfg vorher
entsprechend ab.
3. Konvertieren des Videos für 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 temporär nicht
unwesentlich Speicherplatz auf Eurer Festplatte (
~ 10 GB
pro Minute Video). Je nach Projektgröße solltet ihr also
keinen Mangel an Speicherplatz haben. Das Programm schließt 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 ausführt.
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 für das rechte Auge
erzeugen
Ihr geht auf Start und ausführen 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 sämtliche Dateien und Programme liegen.
Nun gebt Ihr folgende Kommandozeile ein bzw. kopiert Euch diese aus
der beiliegenden Textdatei
FFMpeg-Commandline.txt
heraus , fügt sie mit der rechten Maustaste ein und drückt 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 ursprünglich nur in 1280 x 720 vorliegt, müsst
ihr den Eintrag
hd1080 auf
hd720
ändern! Wenn es sich um Full-HD handelt, könnt ihr die Zeile
unverändert ü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 für die
stereoskopische Darstellung (rechtes Auge) kompatibel zur
Weiterverarbeitung gemacht. Von nun an lässt sich das Ganze genauso
weiter verarbeiten wie ein herkömmlicher 2D-Stream.
5. Bildwiederholungsrate (FPS)
festlegen und nach *.mkv muxen mit mkvmerge
GUI
Ihr öffnet nun
mkvmerge GUI und wählt über
hinzufügen 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 wählt 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, wählt 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
hinzufügen das rechte Video
right_f.h264. Ihr setzt die BPS wieder auf den
gewünschten 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 endgültigen
Encode erledigen. Sofern ihr 3D am PC-Monitor (z.B. mit dem Nvidia
3D-Vison-Kit) erlebt, könnt ihr das Video jetzt schon mit dem
Steroscopic Player abspielen. Alle anderen zuvor erstellten Dateien
könnt Ihr nun löschen um Speicherplatz freizugeben, falls benötigt.
Passt aber auf, das ihr nicht versehentlich Programmdateien oder
deren Konfig-Dateien erwischt! Auf dem unteren Screenshot sind die
Dateien welche ihr nun bedenkenlos löschen könnt mit einem grünen
Punkt markiert.
6. AviSynth-Script für 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 müsst
ihr die beiden obigen Einträge entsprechend ändern. Statt
fps=23.976 muss dort dann stehen
fps=59.940, was für 60 Frames pro Sekunde steht.
Ist es hingegen Full-HD Material mit 1920x1080, könnt ihr das
Script wieder unverändert übernehmen.
7. Side-by-Side Video im
*mkv-Container mit MeGUI erstellen
Wir starten nun das Programm MeGUI. Beim ersten Start prüft das
Programm Updates von diversen Programmteilen und Codecs und zeigt
eine entsprechende Liste an. Ich empfehle Euch die
Programmkomponenten zunächst auf die jeweils neueste Version
updaten zu lassen.

Als erstes stellen wir sicher, das unter
Encoder
settings (1) das
*x264 scratchpad*
ausgewählt ist. Desweiteren wählen wir bei
File
format (2) den Container
MKV aus, bevor
wir über die Menükarte
Tools den
AVS
Script Creator auswählen.

Über
Video Input (1) laden wir nun Unser Script
(
script.avs) aus Unserem Arbeitsordner. Sogleich
öffnet sich das Video im Vorschaufenster, welches wir minimieren
können, da es uns nur die Sicht verdeckt. Als nächstes aktivieren
wir
Resize (2) und tragen im ersten Feld die
horizontale Auflösung Unseres Videoclips ein - also entweder 1920
oder 1280. Die vertikale Auflösung 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 wählen 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 drücken den
Config-Button (1) um die nötigen 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 Qualität in zwei Durchgängen 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 genügend Platz haben. Will man eine
bestimmte Dateigröße erreichen, so empfiehlt sich dafür ein
Bitratenrechner.
Wir klicken oben auf den nächsten Reiter
Frame-Type.

Bei
Number of B-Frames (1) tragen wir am besten
einen Wert von 1-3 ein. Höhere Werte (max. 16) bringen keinen
sichtbaren Vorteil mehr und können diverse Player aus dem Tritt
bringen.
Adaptive B-Frames können wir auf
1-Fast stellen um die Rechenzeit nicht unnötig zu
beanspruchen. Qualitätsfanatiker können auch höhere Werte wählen.
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) müssen
wir wieder vorsichtig sein. Ein Wert über 5 bringt kaum noch
Vorteile und verlängert die Rechenzeit um ein vielfaches.
Desweiteren haben viele Standalone-Player und auch die PS3 Probleme
mit mehr als 4 Re-Frames. Aus Kompatiblitätsgründen verwenden wir
hier am besten 2-3 Re-Frames. Die Option
CABAC
lassen wir aktiviert, da sie optisch bessere Ergebnisse liefert.
Gleichermaßen benötigt sie jedoch beim abspielen auch mehr
Rechenleistung. Das spielt in dem Fall jedoch keine Rolle.
Den nächsten Reiter
Rate Control lassen wir
unberührt und wechseln direkt zur Registerkarte
Analysis.

Wir übernehmen die Einstellungen wie im Screenshot zu sehen. Auf
die Deteils gehe ich später noch ein. Grundsätzlich gilt aber, Ihr
könnt bei allen markierten Optionen auch höhere Werte nehmen. Dies
verlängert die Rechenzeit, kann aber mitunter bessere Ergebnisse
bringen. Aus Kompatiblitätssicht könnt 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 verändert. Ihr braucht diesen Vorgang also nicht
jedesmal wiederholen, wenn Ihr Eure Videos immer mit denselben
Settings encoden wollt.
Wir wählen nun linkerseits den Button
Enqueue und
die Registerkarte
Queue (1).

Wir sehen nun Unsere Aufträge in der Warteschlange (beide
Durchgänge) und drücken abschließend den
Start-Button (2). Wenn MeGUI fertig ist mit dem
encoden, können wir es schließen. 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 wählen ü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) können wir optional noch
einen Flag für die Sprache setzen, was aber nicht nötig ist. Unter
Output (3) stellen wir jetzt noch auf
TS
muxing bzw.
M2TS muxing, je nachdem mit
welchem Format Eure Geräte besser klar kommen. Die meisten Geräte
beherrschen den TS-Container, einige auch M2TS oder gar MKV. Wollt
ihr lieber bei *.mkv bleiben, verwendet einfach MKVMergeGUI statt
den tsMuxer. Wir klicken abschließend auf
Start
muxing und sind fertig!
In Unserem Arbeitsordner finden wir nun das fertige Video
(
script_new.ts). Das File können wir jetzt noch
sinvoll umbenennen und auf unserem 3D-TV oder Player in 3-D als
Side-by-Side abspielen.