Ergebnis 1 bis 1 von 1
  1. #1
    The dark side of BDs

    Moderator

    Avatar von CCS
    Registriert seit
    Aug 2003
    Beiträge
    23.898

    Standard [Mini-TUT] Blu-Ray (H.264/AVC) zu MKV (inkl. Subs & Chapter) v2.50

    [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:

    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" 1)
    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" 1) 1: chapters.txt
    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
    Creating file "chapters.txt"...
    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
    Geändert von CCS (30. 07. 2009 um 10:54 Uhr)

  2.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •