[Mini-TUT] Blu-Ray (H.264/AVC) zu MKV (inkl. Subs & Chapter)
Vorweg:
Dies ist nur als Einstieg zu verstehen und noch längst nicht komplett. Zudem ist dies bestimmt nicht DER Königsweg,
sondern lediglich eine Herangehensweise (von vielen), welche sich für mich gerechnet hat.
Ich werde bestrebt sein, dies Tutorial aktuell zu halten, wenn sich neue Erkenntnisse ergeben.
1. Rippen & Mounten der Blu-Ray
am besten mit AnyDVD HD und ImgBurn als -> ISO ablegen
VORSICHT: da können schnell 40 GB zusammen kommen...also nur auf NTFS/ext2|3 o.ä. ablegen und für genügend Platz sorgen!!!
Das Image kann dann zB. mit DaemonTools gemountet werden.
Der Hauptfilm sollte unterhalb des Verzeichnisses \BDMV\STREAM sitzen und (mit Abstand) die größte Datei sein!
1a. Aus mehreren M2TS eine einzige für die Indexierung vorbereiten:
Gerade Blu-Ray-Titel von Disney (zB. Cars oder auch Ratatouille) haben den Nachteil, daß der Hauptfilm in diverse kleine Teile
(die per Playlist dann abgespielt werden) zerlegt ist - warum auch immer!
Für die Indexierung wird aber ein M2TS-File benötigt, welches sich allerdings ganz leicht erstellen läßt und zwar per Copy-Befehl:
Das /b sagt dem Copy nur, daß es sich um Binary-Material handelt. Der anschließende Stream kann dann ganz einfach in DGAVCIndex geladen werden.
Bei Blu-Rays, bei denen der Hauptfilm eh in einem M2TS vorliegt, kann der Schritt natürlich übersprungen werden!
2. Indexierung des h.264-Streams mittels DGAVCIndex
Vorweg: Wer es mit einem VC-1-kodierten Streifen zu tu hat (wird durch eac3to angezeigt), kann sich vertrauensvoll an das Tutorial von -N3M3SIS- wenden, in dem alle erforderlichen Schritte für die erfolgreiche Rekodierung eines VC-1-Streams erläutert sind.
DGAVCIndex indexiert (analog zu DGIndex - ebenfalls von Donald Graft) die Bildspur, damit anschließend das Ergebnis AVIsynth mittels des AVS-Skriptes übergeben werden kann. Dazu wird das Software-Paket (DGAVCdec108.zip) benötigt, in welchem sich u.a. DGAVCIndex befindet. Einfach entpacken und starten!
Nunmehr per FILE -> OPEN den benötigten Stream (hier: 00011.m2ts) öffnen -> OK. Per FILE -> SAVE PROJECT wird nunmehr der Index in Form einer *.dga-Datei angelegt; dieses File wird dann später innerhalb des AVS-Skriptes eingebunden:
Im MeGUI AVS Skript Editor (s.u.) kann das dann entsprechend editiert werden.
Noch was zum Extrakt der Tonspur per DGAVCIndex:
Dies geht natürlich ebenfalls mit DGAVCIndex (über AUDIO -> AUDIO DEMUX und dann können die relevanten Streams gewählt werden); allerdings wird dann die Tonspur in TrueHD extrahiert, was ich so nicht gebrauchen kann. Deshalb ziehe ich den Weg über EAC3TO (s. 3.) vor!
3. Bereitstellen der benötigten Tonspur(en)
3.1 Extrahieren des Cores (TrueHD | DTS-HD)
Gerade bei TrueHD oder DTS-HD/MA ermpfiehlt sich das Extrahieren der Cores aus den Tonspuren, um diese dann mit der fertig
kodierten Bildspur zu muxxen. Dafür wird das Kommdozeilen-Tool eac3to
verwendet (dazu gibt es auch einen GUI, für alle, die den Command Prompt fürchten *GGG*)
Folgende Befehle sind erforderlich:
a) Welche Tonspur sitzt wo?
Position 2-5 sind die 4 Tonspuren, zwei davon in TrueHD/AC3, zwei in AC3. Leider ist nicht zu erkennen, welches die (für uns interessante)
deutsche Tonspur ist -> ausprobieren ist also angesagt...am besten einfach mal die Blu-Ray mit PowerDVD anspielen - dann sollte die Position der
Tonspuren bekannt sein...in unserem Beispiel geht es um 3: TrueHD/AC3, 5.1 channels, 48khz...mit Hilfe eines einfaches Befehls können wir somit
diese Tonspur extrahieren und - wenn gewollt - gleich noch auf eine bestimmte Bitrate runterrechnen lassen:
b) Extraktion der Tonspur
Der Schalter -448 (also: eac3to X:\BDMV\STREAM\00011.m2ts 3:sp3_de_640.ac3 -448) würde dann aus der 640er AC3
(scheint die DEFAULT-Größe zu sein) eine in 448 kbit kodierte machen - schickes Tool!!!
Mit dem Aufruf:
(also ohne jegliche Option) werden alle möglichen Optionen/Schalter angezeigt; dies ist gerade für den Einstieg recht sinnvoll!!!
Die enstandene Tonspur können wir nun liegen lassen, sie wird erst wieder zum Muxxen ganz am Schluß benötigt!
3.2 Umwandeln von TrueHD-Spuren zu DTS-Spuren
Für alle, die aufgrund der verwendeten Hardware (zB. HTPC und S/P-DIF oder auch einen älteren A/V) nicht in der Lage sind, TrueHD-Spuren
auch als solche auszugeben bzw. lieber eine DTS-Spur in ihrer MKV haben wollen, sei hier kurz auf das wirklich einfache Verfahren hingewiesen,
mit welchem diese Umwandlung zu bewerkstelligen ist.
a) Klären, welche Playlist mit welchen Inhalten existiert:
b) Playlist-Inhalte anzeigen:
c) Relevante Tonspur (hier die 4. DE TrueHD) umwandeln lassen zu DTS (SurCode DVD DTS muß installiert sein!):
d) Nochmaliger Lauf, um Zero Padding (= zuvor angefügte Nullen) zu beseitigen (geht recht schnell):
Voilá! Eine schicke 5.1-DTS-Tonspur
4. Rekodierung der M2TS mittels x264 sowie MeGUI:
Vorweg:
Wer es braucht, kann sich die MeGUI Essentials von Selur reinziehen - 173 Seiten geballtes Wissen! [ DOWLOAD ]
Zum Tool MeGUI will ich selber gar nicht groß ausholen (s.o.); es gibt bereits viele Tutorials dazu. Stellvertretend sei auf das von L.A.T. verweisen, welches
sich u.a. unter http://dvd2h264.awardspace.com eingehend studieren läßt!
Innerhalb meines Ansatzes möchte ich lediglich euf einige Einstellungen eingehen, die für unsere Zwecke wichtig sind.
Das Software-Paket kann man u.a. unter http://www.divx-digest.com/software/megui.html downloaden.
Doppeklicken des MeGUI-Icons startet das Frontend. Als erstes sollte man das File Format (= MKV) sowie die Encoder Settings
(= hier ein individualisiertes Profil von mir; als Einstieg wäre "x264: Standalone-Blu-ray" zu empfehlen) festlegen. Der Video Output
ist nichts anderes als der Dateiname der fertig kodierten Bildspur.
Über TOOLS -> AVISYNTH SKRIPT EDITOR kommt man an die CROP-Funktion ran: Der benötigte Stream ist zu öffnen; dies kann ein wenig dauern (Daten!)...
anschließend öffnet sich eine Bildvorschau, welche nun zurecht gestutzt werden kann/muß:
Über RESIZE läßt sich das Zielformat auf 1.280*720 (= 720p) einstellen; anschließend SUGGEST RESOLUTION anticken,
ein Mal auf AUTOCROP und man erhält den benötigten Bildausschnitt!
Wem das nicht genügt, kann selbstverständlich selber an den Werten schrauben - eine Kontrolle ist jeweils an der Vorschau-Graphik möglich!
Wenn alles sitzt, einfach per SAVE das ganze sichern. Zur Kontrolle kann zudem das Avisynth-Skript im Register EDIT begutachtet werden.
Ein anderer - von mir inzwischen bevorzugter - Ansatz, geht davon aus, das Avisynth-Skript selber zu schreiben (im großen un ganzen werden die Unterschiede zw. den verschiedenen Blu-ray-Rips nicht sein) und alle erforderlichen Anpassungen (cropping, resize etc.) dort bereits im Vorfeld zu hinterlegen. Dieses AVS-Skript läßt sich dann ganz einfach in MeGUI öffnen und man erspart sich den Gang über die Preview, welche sich ja in vielen Fällen als recht instabil gezeigt hat.
Tip:
Um zu testen, wie der mögl. Bildausschnitt aussehen würde, einfach einen kleinen Teil des Streams kodieren; dies geht, indem man im Avisyth-Skript einfach
den Eintrag
vornimmt. Es werden somit "nur" 3.000 frames kodiert (ca. 125 Sekunden), man erhält aber einen Einblick in das mögl. Resultat!
Dies aber bitte nicht überbewerten! Es ist lediglich eine Herangehensweise!
Die Audio-Einstellungen bei MeGUI habe ich hier nicht betrachtet, da ich das Ausgangmaterial (s.o. AC3 in 640 kbit) unverändert übernehmen werde.
Unter den TOOLS -> BITRATE CALCULATOR finden wir einen kleinen, aber effizienten Rechner, der in den Ablauf integriert ist; die Film-Länge
ist bereits eingetragen, man muß nur noch die Qualität der Tonspur(en) eintragen und die Zielgröße vorgeben (hier DVD9)...schon gibt's die
AverageBitrate (hier: 7.530, welche ich auf 7.500 gesetzt habe, um ein wenig Spielraum hinten raus zu haben - Muxing Overhead etc.).
Über den Button CONFIG können nun weitere Einstellungen vorgenommen werden. Hier - in aller Kürze - waren nur die folgenden relevant:
MAIN Automated 2pass (wem das nicht reicht, kann auch 3 Durchläufe nehmen) - die Bitrate wurde übernommen (s.o.)
Profiles: AE-Maxquality (wem das zu viel ist, kann auch weniger akurate Einstellungen nehmen)
ADVANCED Number of B-Frames auf 4 setzen - alles andere für die "Spiel-Kinder" unter uns.
Sind alle Einstellungen getätigt, kann man über den Button ENQUEUE die Kodierung dieses Streifens (= Job) in die Job-Liste übernehmen.
Diese Liste ist dann über das Register ENQUEUE einsehbar:
Über START wird nun der 1. Job angestartet; ist dieser beendet, wird automatisch der 2. Job (= der 2. Pass) angestartet. Während der Kodierung
wird der Status über ein separates Fenster angezeigt. Die 3.19 fps (frames per second) sind schon bitter! V.a. wenn man (weit) über 60fps bei
MPEG-2-Kodierung gewöhnt ist. Hängt aber auch stark von den verwendeten Parametern sowie der Zielgröße (720/1080p) ab.
5. Erstellen von Untertiteln:
Matroska bietet die Möglichkeit, Untertitel nicht nur als TXT einzubinden (was ja einiges an Text-Erkennung mit sich zieht, da sowohl DVDs als
auch Blu-Rays ihre Untertitel als Bitmaps, sprich Bilder, ablegen; OCR ist hier das Stichwort), sondern ebenso als SUB/IDX-Format. Dieses werde
ich hier kurz aufzeigen. Als erstes müssen die Untertitel aus dem M2TS-Stream extrahiert werden; dies läßt sich relativ einfach mit eac3to erreichen:
Dieses SUP-File kann nur mithilfe von SUPRead weiterverabeitet werden. Dazu wird das File geladen,
unter OPTIONS auf HD DVD geklickt und dann per EXPORT SUP die Daten wiederum exportiert.
Die dabei entandene Datei (hier: en_subs.HDDVD.23.976.sup) wird nun mit Hilfe des Tools
SubtitleCreator in das Format idx/sub gewandelt:
Programm starten und unter -> TOOLS -> Manipulate SUP or VobSub anklicken:
Per -> OPEN SUB wird dann die eben erzeugte Datei (en_subs.HDDVD.23.976.sup) geladen; etwaige Anpssungen (Farbe etc.) können noch vorgenommen werden.
Gespeichert wird dann per -> SAVE SUB
Anschließend sollte noch die die Sprache dem Stream zugeordnet werden; mit OK bestätigen. Das enstandene Format (idx/sub) läßt sich nun mit den Tonspuren sowie der kodierten Bildspur zur MKV muxxen.
6. Extrahieren der Kapitel:
Das Extrahieren der Kapitel geht ganz einfach mit EAC3TO; dafür muß man die gesamte BD-Struktur (also oberhalb BDMV/CERTIFICATE) "befragen":
Nun wissen wir,
a) wie die Playlists der Blu-Ray aussehen (nettes Feature!!) und
b) können wir jetzt einzelne Playlists evaluieren:
Mit 1) wird also die 1. Playlist ausgewertet und führt uns somit zu den Chapters (das könnte natürlich genausogut für die Untertitel verwendet werden).
Im angegeben (bzw. aktuellen) Verzeichnis befindet sich jetzt eine TXT-Datei mit den soeben extrahierten Kapiteln:
Die Chapter werden dann per -> CHAPTER EDITOR und -> LOAD hinzugefügt und als XML-Datei gespeichert.
Diese XML-Datei läßt sich im Register GLOBAL dann einbinden. Anschließend alles muxxen.
7. Muxxen der einzelnen Sourcen zu MKV:
Hier sind nun grundsätzlich zwei Ansätze möglich:
a) über MeGUI -> TOOLS -> MUXER -> MKV MUXER
oder
b) über mkvmerge (bzw. den dazugehörigen GUI)
In beiden Fällen müssen die Sourcen (also kodierte Bild- sowie AC3-Tonspur(en) sowie Untertitel und Chapters) ausgewählt werden; noch den OUTPUT File
Name festlegen und über QUEUE bzw. START MUXING den Job abarbeiten lassen. Im ersteren Fall wird der Mux-Job wiederum in die Job-Queue gestellt, um von
dort aus gestartet zu werden. Auch hier wieder wichtig: da das Ziel-File (weit) über 4 GB haben wird, muß das Filesystem mit derartig großen Dateien
zurecht kommen (also NTFS oder auch ext2/3 etc. - FAT32 geht nicht!!!)
In meinem Beispiel ergab sich eine Filmgröße von exakt 8.489.583.455 Bytes (= 7.907 GiB) - paßt also ideal auf eine DVD+DL
8. Testen/Abspielen der fertigen MKV:
Klare Empfehlung in Richtung MediaPlayer Classic, HaaliMediaSplitter und CoreAVC...etwaiger Versatz (Ansynchronität) könnten über eine Mitgabe eines DELAY-Wertes beim Muxxen korrigiert werden; sollte aber eigentlich nicht der Fall sein...und nun: zurücklehnen und genießen!
Alle Ton- und Untertitelspuren sind anwählbar mit dem MediaPlayerClassic:
Grossen Dank geht u.a. an L.A.T. für seine Anmerkungen hins. Indexierung des H.264- bzw. VC-1-Streams!!!
########### STATUS: v. 2.2 vom 2008-12-29 ######################
Open Issues:
Cee ya, CCS
^^ das mußte ich einfach mit rübernehmen Vlt. braucht's ja der eine oder andere noch...
Vorweg:
Dies ist nur als Einstieg zu verstehen und noch längst nicht komplett. Zudem ist dies bestimmt nicht DER Königsweg,
sondern lediglich eine Herangehensweise (von vielen), welche sich für mich gerechnet hat.
Ich werde bestrebt sein, dies Tutorial aktuell zu halten, wenn sich neue Erkenntnisse ergeben.
1. Rippen & Mounten der Blu-Ray
am besten mit AnyDVD HD und ImgBurn als -> ISO ablegen
VORSICHT: da können schnell 40 GB zusammen kommen...also nur auf NTFS/ext2|3 o.ä. ablegen und für genügend Platz sorgen!!!
Das Image kann dann zB. mit DaemonTools gemountet werden.
Der Hauptfilm sollte unterhalb des Verzeichnisses \BDMV\STREAM sitzen und (mit Abstand) die größte Datei sein!
1a. Aus mehreren M2TS eine einzige für die Indexierung vorbereiten:
Gerade Blu-Ray-Titel von Disney (zB. Cars oder auch Ratatouille) haben den Nachteil, daß der Hauptfilm in diverse kleine Teile
(die per Playlist dann abgespielt werden) zerlegt ist - warum auch immer!
Für die Indexierung wird aber ein M2TS-File benötigt, welches sich allerdings ganz leicht erstellen läßt und zwar per Copy-Befehl:
Code:
copy /b <teil1>.m2ts+<teil2.>m2ts+...+<teilN>.m2ts <fertiger_film>.m2ts
Das /b sagt dem Copy nur, daß es sich um Binary-Material handelt. Der anschließende Stream kann dann ganz einfach in DGAVCIndex geladen werden.
Bei Blu-Rays, bei denen der Hauptfilm eh in einem M2TS vorliegt, kann der Schritt natürlich übersprungen werden!
2. Indexierung des h.264-Streams mittels DGAVCIndex
Vorweg: Wer es mit einem VC-1-kodierten Streifen zu tu hat (wird durch eac3to angezeigt), kann sich vertrauensvoll an das Tutorial von -N3M3SIS- wenden, in dem alle erforderlichen Schritte für die erfolgreiche Rekodierung eines VC-1-Streams erläutert sind.
DGAVCIndex indexiert (analog zu DGIndex - ebenfalls von Donald Graft) die Bildspur, damit anschließend das Ergebnis AVIsynth mittels des AVS-Skriptes übergeben werden kann. Dazu wird das Software-Paket (DGAVCdec108.zip) benötigt, in welchem sich u.a. DGAVCIndex befindet. Einfach entpacken und starten!
Nunmehr per FILE -> OPEN den benötigten Stream (hier: 00011.m2ts) öffnen -> OK. Per FILE -> SAVE PROJECT wird nunmehr der Index in Form einer *.dga-Datei angelegt; dieses File wird dann später innerhalb des AVS-Skriptes eingebunden:
Code:
LoadPlugin("<Pfad>\DGAVCDecode.dll")
AVCSource("<Pfad>\<Datei>.dga")
Im MeGUI AVS Skript Editor (s.u.) kann das dann entsprechend editiert werden.
Noch was zum Extrakt der Tonspur per DGAVCIndex:
Dies geht natürlich ebenfalls mit DGAVCIndex (über AUDIO -> AUDIO DEMUX und dann können die relevanten Streams gewählt werden); allerdings wird dann die Tonspur in TrueHD extrahiert, was ich so nicht gebrauchen kann. Deshalb ziehe ich den Weg über EAC3TO (s. 3.) vor!
3. Bereitstellen der benötigten Tonspur(en)
3.1 Extrahieren des Cores (TrueHD | DTS-HD)
Gerade bei TrueHD oder DTS-HD/MA ermpfiehlt sich das Extrahieren der Cores aus den Tonspuren, um diese dann mit der fertig
kodierten Bildspur zu muxxen. Dafür wird das Kommdozeilen-Tool eac3to
verwendet (dazu gibt es auch einen GUI, für alle, die den Command Prompt fürchten *GGG*)
Folgende Befehle sind erforderlich:
a) Welche Tonspur sitzt wo?
Code:
Y:\eac3to>eac3to.exe X:\BDMV\STREAM\00011.m2ts
M2TS, 1 video track, 4 audio tracks
1: h264/AVC, 1080p24 /1.001 (16:9)
2: TrueHD/AC3, 5.1 channels, 48khz
3: TrueHD/AC3, 5.1 channels, 48khz
4: AC3, 2.0 channels, 192kbit/s, 48khz
5: AC3, 2.0 channels, 192kbit/s, 48khz
Position 2-5 sind die 4 Tonspuren, zwei davon in TrueHD/AC3, zwei in AC3. Leider ist nicht zu erkennen, welches die (für uns interessante)
deutsche Tonspur ist -> ausprobieren ist also angesagt...am besten einfach mal die Blu-Ray mit PowerDVD anspielen - dann sollte die Position der
Tonspuren bekannt sein...in unserem Beispiel geht es um 3: TrueHD/AC3, 5.1 channels, 48khz...mit Hilfe eines einfaches Befehls können wir somit
diese Tonspur extrahieren und - wenn gewollt - gleich noch auf eine bestimmte Bitrate runterrechnen lassen:
b) Extraktion der Tonspur
Code:
Y:\eac3to\eac3to.exe X:\BDMV\STREAM\00011.m2ts 3:sp3_de_640.ac3
M2TS, 1 video track, 4 audio tracks
1: h264/AVC, 1080p24 /1.001 (16:9)
2: TrueHD/AC3, 5.1 channels, 48khz
3: TrueHD/AC3, 5.1 channels, 48khz
4: AC3, 2.0 channels, 192kbit/s, 48khz
5: AC3, 2.0 channels, 192kbit/s, 48khz
Extracting audio track number 3...
Extracting AC3 stream...
Creating file "sp3_de_640.ac3"...
eac3to processing took 52 minutes, 41 seconds.
Done.
Der Schalter -448 (also: eac3to X:\BDMV\STREAM\00011.m2ts 3:sp3_de_640.ac3 -448) würde dann aus der 640er AC3
(scheint die DEFAULT-Größe zu sein) eine in 448 kbit kodierte machen - schickes Tool!!!
Mit dem Aufruf:
Code:
eac3to
(also ohne jegliche Option) werden alle möglichen Optionen/Schalter angezeigt; dies ist gerade für den Einstieg recht sinnvoll!!!
Die enstandene Tonspur können wir nun liegen lassen, sie wird erst wieder zum Muxxen ganz am Schluß benötigt!
3.2 Umwandeln von TrueHD-Spuren zu DTS-Spuren
Für alle, die aufgrund der verwendeten Hardware (zB. HTPC und S/P-DIF oder auch einen älteren A/V) nicht in der Lage sind, TrueHD-Spuren
auch als solche auszugeben bzw. lieber eine DTS-Spur in ihrer MKV haben wollen, sei hier kurz auf das wirklich einfache Verfahren hingewiesen,
mit welchem diese Umwandlung zu bewerkstelligen ist.
a) Klären, welche Playlist mit welchen Inhalten existiert:
Code:
<LW>:> eac3to <LW in welchem die BD-ISO liegt, zB. X:>
1) 00001.mpls, 00011.m2ts, 2:19:11
- h264/AVC, 1080p24 /1.001 (16:9)
- TrueHD, English, multi-channel, 48khz
- TrueHD, German, multi-channel, 48khz
- AC3, English, stereo, 48khz
- AC3, English, stereo, 48khz
b) Playlist-Inhalte anzeigen:
Code:
<LW>:> eac3to X: 1)
M2TS, 1 video track, 4 audio tracks, 5 subtitle tracks, 2:19:11
1: Chapters, 52 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: TrueHD/AC3, English, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -30dB)
4: TrueHD/AC3, German, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 640kbps, 48khz)
5: AC3 Surround, English, 2.0 channels, 192kbps, 48khz
6: AC3 Surround, English, 2.0 channels, 192kbps, 48khz
7: Subtitle (PGS), English
8: Subtitle (PGS), German
9: Subtitle (PGS), Turkish
10: Subtitle (PGS), German
11: Subtitle (PGS), German
c) Relevante Tonspur (hier die 4. DE TrueHD) umwandeln lassen zu DTS (SurCode DVD DTS muß installiert sein!):
Code:
<LW>:> eac3to X: 1) 4:de_truehd.dts -1536
M2TS, 1 video track, 4 audio tracks, 5 subtitle tracks, 2:19:11
1: Chapters, 52 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: TrueHD/AC3, English, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -30dB)
4: TrueHD/AC3, German, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 640kbps, 48khz)
5: AC3 Surround, English, 2.0 channels, 192kbps, 48khz
6: AC3 Surround, English, 2.0 channels, 192kbps, 48khz
7: Subtitle (PGS), English
8: Subtitle (PGS), German
9: Subtitle (PGS), Turkish
10: Subtitle (PGS), German
11: Subtitle (PGS), German
[a04] Extracting audio track number 4...
[a04] Extracting TrueHD stream...
[a04] Decoding with libav/ffmpeg...
[a04] Writing WAVs...
[a04] Creating file "de_truehd.R.wav"...
[a04] Creating file "de_truehd.SL.wav"...
[a04] Creating file "de_truehd.SR.wav"...
[a04] Creating file "de_truehd.C.wav"...
[a04] Creating file "de_truehd.LFE.wav"...
[a04] Creating file "de_truehd.L.wav"...
[a04] The original audio track has a constant bit depth of 24 bits.
Encoding DTS <1536kbps> with Surcode...
Found Surcode DTS Encoder version 1.0.21.0.
Surcode encoding successfully started. Please wait...
Closing Surcode...
Video track 2 contains 200230 frames.
eac3to processing took 57 minutes, 32 seconds.
Surcode encoding took 26 minutes, 47 seconds.
Done.
d) Nochmaliger Lauf, um Zero Padding (= zuvor angefügte Nullen) zu beseitigen (geht recht schnell):
Code:
<LW>:> eac3to de_truehd.dts de_1536.dts
DTS, 5.1 channels, 2:19:11, 24 bits, 1536kbps, 48khz
Removing DTS zero padding...
Creating file "de_1536.dts"...
eac3to processing took 2 minutes, 17 seconds.
Done.
Voilá! Eine schicke 5.1-DTS-Tonspur
4. Rekodierung der M2TS mittels x264 sowie MeGUI:
Vorweg:
Wer es braucht, kann sich die MeGUI Essentials von Selur reinziehen - 173 Seiten geballtes Wissen! [ DOWLOAD ]
Zum Tool MeGUI will ich selber gar nicht groß ausholen (s.o.); es gibt bereits viele Tutorials dazu. Stellvertretend sei auf das von L.A.T. verweisen, welches
sich u.a. unter http://dvd2h264.awardspace.com eingehend studieren läßt!
Innerhalb meines Ansatzes möchte ich lediglich euf einige Einstellungen eingehen, die für unsere Zwecke wichtig sind.
Das Software-Paket kann man u.a. unter http://www.divx-digest.com/software/megui.html downloaden.
Doppeklicken des MeGUI-Icons startet das Frontend. Als erstes sollte man das File Format (= MKV) sowie die Encoder Settings
(= hier ein individualisiertes Profil von mir; als Einstieg wäre "x264: Standalone-Blu-ray" zu empfehlen) festlegen. Der Video Output
ist nichts anderes als der Dateiname der fertig kodierten Bildspur.
Über TOOLS -> AVISYNTH SKRIPT EDITOR kommt man an die CROP-Funktion ran: Der benötigte Stream ist zu öffnen; dies kann ein wenig dauern (Daten!)...
anschließend öffnet sich eine Bildvorschau, welche nun zurecht gestutzt werden kann/muß:
Über RESIZE läßt sich das Zielformat auf 1.280*720 (= 720p) einstellen; anschließend SUGGEST RESOLUTION anticken,
ein Mal auf AUTOCROP und man erhält den benötigten Bildausschnitt!
Wem das nicht genügt, kann selbstverständlich selber an den Werten schrauben - eine Kontrolle ist jeweils an der Vorschau-Graphik möglich!
Wenn alles sitzt, einfach per SAVE das ganze sichern. Zur Kontrolle kann zudem das Avisynth-Skript im Register EDIT begutachtet werden.
Ein anderer - von mir inzwischen bevorzugter - Ansatz, geht davon aus, das Avisynth-Skript selber zu schreiben (im großen un ganzen werden die Unterschiede zw. den verschiedenen Blu-ray-Rips nicht sein) und alle erforderlichen Anpassungen (cropping, resize etc.) dort bereits im Vorfeld zu hinterlegen. Dieses AVS-Skript läßt sich dann ganz einfach in MeGUI öffnen und man erspart sich den Gang über die Preview, welche sich ja in vielen Fällen als recht instabil gezeigt hat.
Tip:
Um zu testen, wie der mögl. Bildausschnitt aussehen würde, einfach einen kleinen Teil des Streams kodieren; dies geht, indem man im Avisyth-Skript einfach
den Eintrag
Code:
TRIM(2000,5000)
vornimmt. Es werden somit "nur" 3.000 frames kodiert (ca. 125 Sekunden), man erhält aber einen Einblick in das mögl. Resultat!
Dies aber bitte nicht überbewerten! Es ist lediglich eine Herangehensweise!
Die Audio-Einstellungen bei MeGUI habe ich hier nicht betrachtet, da ich das Ausgangmaterial (s.o. AC3 in 640 kbit) unverändert übernehmen werde.
Unter den TOOLS -> BITRATE CALCULATOR finden wir einen kleinen, aber effizienten Rechner, der in den Ablauf integriert ist; die Film-Länge
ist bereits eingetragen, man muß nur noch die Qualität der Tonspur(en) eintragen und die Zielgröße vorgeben (hier DVD9)...schon gibt's die
AverageBitrate (hier: 7.530, welche ich auf 7.500 gesetzt habe, um ein wenig Spielraum hinten raus zu haben - Muxing Overhead etc.).
Über den Button CONFIG können nun weitere Einstellungen vorgenommen werden. Hier - in aller Kürze - waren nur die folgenden relevant:
MAIN Automated 2pass (wem das nicht reicht, kann auch 3 Durchläufe nehmen) - die Bitrate wurde übernommen (s.o.)
Profiles: AE-Maxquality (wem das zu viel ist, kann auch weniger akurate Einstellungen nehmen)
ADVANCED Number of B-Frames auf 4 setzen - alles andere für die "Spiel-Kinder" unter uns.
Sind alle Einstellungen getätigt, kann man über den Button ENQUEUE die Kodierung dieses Streifens (= Job) in die Job-Liste übernehmen.
Diese Liste ist dann über das Register ENQUEUE einsehbar:
Über START wird nun der 1. Job angestartet; ist dieser beendet, wird automatisch der 2. Job (= der 2. Pass) angestartet. Während der Kodierung
wird der Status über ein separates Fenster angezeigt. Die 3.19 fps (frames per second) sind schon bitter! V.a. wenn man (weit) über 60fps bei
MPEG-2-Kodierung gewöhnt ist. Hängt aber auch stark von den verwendeten Parametern sowie der Zielgröße (720/1080p) ab.
5. Erstellen von Untertiteln:
Matroska bietet die Möglichkeit, Untertitel nicht nur als TXT einzubinden (was ja einiges an Text-Erkennung mit sich zieht, da sowohl DVDs als
auch Blu-Rays ihre Untertitel als Bitmaps, sprich Bilder, ablegen; OCR ist hier das Stichwort), sondern ebenso als SUB/IDX-Format. Dieses werde
ich hier kurz aufzeigen. Als erstes müssen die Untertitel aus dem M2TS-Stream extrahiert werden; dies läßt sich relativ einfach mit eac3to erreichen:
Code:
Y:\eac3to\eac3to.exe X:\BDMV\STREAM\00001.m2ts 6:de_sub.sup
M2TS, 1 video track, 4 audio tracks, 4 subtitle tracks
1: MPEG2, 1080p24 /1.001 (16:9)
2: AC3, 5.1 channels, 448kbps, 48khz
3: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -29dB
4: RAW/PCM, 5.1 channels, 16 bits, 48khz
5: AC3, 2.0 channels, 192kbps, 48khz, dialnorm: -30dB
6: Subtitle (PGS)
7: Subtitle (PGS)
8: Subtitle (PGS)
9: Subtitle (PGS)
[s06] Extracting subtitle track number 6...
[s06] Creating file "de_subs.sup"...
Video track 1 contains 130392 frames.
eac3to processing took 15 minutes, 4 seconds.
Done.
Dieses SUP-File kann nur mithilfe von SUPRead weiterverabeitet werden. Dazu wird das File geladen,
unter OPTIONS auf HD DVD geklickt und dann per EXPORT SUP die Daten wiederum exportiert.
Die dabei entandene Datei (hier: en_subs.HDDVD.23.976.sup) wird nun mit Hilfe des Tools
SubtitleCreator in das Format idx/sub gewandelt:
Programm starten und unter -> TOOLS -> Manipulate SUP or VobSub anklicken:
Per -> OPEN SUB wird dann die eben erzeugte Datei (en_subs.HDDVD.23.976.sup) geladen; etwaige Anpssungen (Farbe etc.) können noch vorgenommen werden.
Gespeichert wird dann per -> SAVE SUB
Anschließend sollte noch die die Sprache dem Stream zugeordnet werden; mit OK bestätigen. Das enstandene Format (idx/sub) läßt sich nun mit den Tonspuren sowie der kodierten Bildspur zur MKV muxxen.
6. Extrahieren der Kapitel:
Das Extrahieren der Kapitel geht ganz einfach mit EAC3TO; dafür muß man die gesamte BD-Struktur (also oberhalb BDMV/CERTIFICATE) "befragen":
Code:
LW\:>eac3to "LW:\FILM_BD"
1) 00059.mpls (angle 1), 00092.m2ts+00093.m2ts, 1:30:38
- MPEG2, 1080p24 /1.001 (16:9)
- AC3, English, multi-channel, 48khz
- AC3, German, multi-channel, 48khz
- RAW/PCM, German, multi-channel, 48khz
- AC3, English, stereo, 48khz
2) 00059.mpls (angle 2), 00092.m2ts+00094.m2ts, 1:30:38
- MPEG2, 1080p24 /1.001 (16:9)
- AC3, English, multi-channel, 48khz
- AC3, German, multi-channel, 48khz
- RAW/PCM, German, multi-channel, 48khz
- AC3, English, stereo, 48khz
3) 00019.mpls, 0:24:40
[11+12+14+15+16+17+18+19].m2ts
- MPEG2, 480i60 /1.001 (16:9)
- AC3, English, stereo, 48khz
Nun wissen wir,
a) wie die Playlists der Blu-Ray aussehen (nettes Feature!!) und
b) können wir jetzt einzelne Playlists evaluieren:
Code:
LW\:>eac3to "LW:\FILM_BD" [b]1)[/b]
M2TS, 1 video track, 4 audio tracks, 4 subtitle tracks, 1:30:38
1: Chapters, 28 chapters
2: MPEG2, 1080p24 /1.001 (16:9)
3: AC3, English, 5.1 channels, 448kbps, 48khz
4: AC3, German, 5.1 channels, 448kbps, 48khz, dialnorm: -29dB
5: RAW/PCM, German, 5.1 channels, 16 bits, 48khz
6: AC3, English, 2.0 channels, 192kbps, 48khz, dialnorm: -30dB
7: Subtitle (PGS), English
8: Subtitle (PGS), German
9: Subtitle (PGS), Turkish
10: Subtitle (PGS), German
Mit 1) wird also die 1. Playlist ausgewertet und führt uns somit zu den Chapters (das könnte natürlich genausogut für die Untertitel verwendet werden).
Code:
LW:\>eac3to "LW:\FILM_BD" [b]1) 1: chapters.txt[/b]
M2TS, 1 video track, 4 audio tracks, 4 subtitle tracks, 1:30:38
1: Chapters, 28 chapters
2: MPEG2, 1080p24 /1.001 (16:9)
3: AC3, English, 5.1 channels, 448kbps, 48khz
4: AC3, German, 5.1 channels, 448kbps, 48khz, dialnorm: -29dB
5: RAW/PCM, German, 5.1 channels, 16 bits, 48khz
6: AC3, English, 2.0 channels, 192kbps, 48khz, dialnorm: -30dB
7: Subtitle (PGS), English
8: Subtitle (PGS), German
9: Subtitle (PGS), Turkish
10: Subtitle (PGS), German
[b]Creating file "chapters.txt"...[/b]
Done.
Im angegeben (bzw. aktuellen) Verzeichnis befindet sich jetzt eine TXT-Datei mit den soeben extrahierten Kapiteln:
Code:
CHAPTER01=00:00:00.000
CHAPTER01NAME=
CHAPTER02=00:03:23.620
CHAPTER02NAME=
CHAPTER03=00:06:35.020
CHAPTER03NAME=
CHAPTER04=00:10:27.377
...
Die Chapter werden dann per -> CHAPTER EDITOR und -> LOAD hinzugefügt und als XML-Datei gespeichert.
Diese XML-Datei läßt sich im Register GLOBAL dann einbinden. Anschließend alles muxxen.
7. Muxxen der einzelnen Sourcen zu MKV:
Hier sind nun grundsätzlich zwei Ansätze möglich:
a) über MeGUI -> TOOLS -> MUXER -> MKV MUXER
oder
b) über mkvmerge (bzw. den dazugehörigen GUI)
In beiden Fällen müssen die Sourcen (also kodierte Bild- sowie AC3-Tonspur(en) sowie Untertitel und Chapters) ausgewählt werden; noch den OUTPUT File
Name festlegen und über QUEUE bzw. START MUXING den Job abarbeiten lassen. Im ersteren Fall wird der Mux-Job wiederum in die Job-Queue gestellt, um von
dort aus gestartet zu werden. Auch hier wieder wichtig: da das Ziel-File (weit) über 4 GB haben wird, muß das Filesystem mit derartig großen Dateien
zurecht kommen (also NTFS oder auch ext2/3 etc. - FAT32 geht nicht!!!)
In meinem Beispiel ergab sich eine Filmgröße von exakt 8.489.583.455 Bytes (= 7.907 GiB) - paßt also ideal auf eine DVD+DL
8. Testen/Abspielen der fertigen MKV:
Klare Empfehlung in Richtung MediaPlayer Classic, HaaliMediaSplitter und CoreAVC...etwaiger Versatz (Ansynchronität) könnten über eine Mitgabe eines DELAY-Wertes beim Muxxen korrigiert werden; sollte aber eigentlich nicht der Fall sein...und nun: zurücklehnen und genießen!
Alle Ton- und Untertitelspuren sind anwählbar mit dem MediaPlayerClassic:
Grossen Dank geht u.a. an L.A.T. für seine Anmerkungen hins. Indexierung des H.264- bzw. VC-1-Streams!!!
########### STATUS: v. 2.2 vom 2008-12-29 ######################
Open Issues:
- n0ne
Cee ya, CCS
^^ das mußte ich einfach mit rübernehmen Vlt. braucht's ja der eine oder andere noch...