24. Januar 2016

Roger Waters: Die Mauer ist weg


Hurra, hurra, Musik in TrueHD ist da. Nun auch mit Bild: Wir brauchen eure scheiß Bildung nicht. We don't need no education.

Der kundige Leser hatte anhand des Screenshots bereits im zweiten Teil dieses kleinen Ausflugs in die Horrorwelt der Software erkannt, daß das Anliegen, aus einer BluRay einige Kapitel zu entfernen, um sich einen reinen Konzertmitschnitt anzufertigen, geklappt hatte.

Es gab zwei Stolpersteine zu überwinden. VLC kann kein TrueHD abspielen, also ist der gute alte MPHC wieder an Board, der klaglos funktioniert. Der im Haus befindliche Player kann zwar AVCHD abspielen, aber in nur exakt einer einzigen Machart. Videostream muß h264 sein und Audio ac3 (Dolby Digital).

Damit wurde erfolgreich verhindert, daß ich mir das Endprodukt stundenlanger Arbeit in Lümmelhaltung im Zentrum der Boxengasse anhören konnte, da sich die zuerst angefertigte AVCHD mit TrueHD nur am PC abspielen ließ, obwohl die Kapitalisierung geklappt hatte.

Ergo mußte das Verfahren wiederholt und inklusive Video zum Erfolg geführt werden, also ein BluRay-Struktur erstellt werden. Das wiederum unter der Voraussetzung, die Spargroschen nicht der Softwaremafia für untaugliche Produkte in den Rachen zu werfen, denn letztlich nutzen sie auch nur die Repositorien von OpenSource, um den nicht verstandenen Quellcode mit einer Klickibunti-Oberfläche aufzupeppen. Was die Freizeitprogrammierer nicht auf die Reihe bekommen, schaffen die Profis auch nicht.


Friedhof mit Kriegsopfern in Italien, auf dem der Vater von Roger Waters beerdigt wurde. Waters spielt das Trompetensolo Out Of The Wall.

Nun geht es ans Eingemachte. Wie hast du das geschafft, wenn es doch gar nicht geht? Ganz einfach. Indem in Hardcore, also auf Softwarepornografie gemacht wurde. Alles wurde in liebevoller Handarbeit erledigt.

Die Software befand sich ja im Prinzip bereits auf dem PC, mußte nur in allen Fällen aktualisiert werden. Eine kam neu hinzu. Genutzt wurden:
  • eac3to (Audiokonvertierung)
  • Tsmuxer (Muxen bzw. Demuxen von Videoströmen, erstellen BluRay/AVCHD-Struktur, Software funktioniert nicht)
  • Avidemux (nur zum kucken, da es nichts kann)
  • ffmpeg (neuste Version, die mit TrueHD und m2ts umgehen kann)
  • MKVtoolNix
  • TsRemuxer (letztlich der Bringer, denn die kann, was tsmuxer nur verspricht).
Die Daten der Bluray lagen also auf der Festplatte vor. Die erste Frage dauerte etwas, wurde dann durch Installation von MKVToolNix gelöst. Wie bekommt man die Scheibe in einzelne Kapitel tranchiert? Man läßt sich die Kapitelmarker auslesen, mit irgendeiner Software ging das, lädt die BluRay-Struktur in MKVToolNix und kann dann angeben, daß an diesen Zeitstempeln gesplittet wird.

Funktioniert super und hat etliche Stunden aufgehalten, bis der erste grobe Fehler gefunden war, weswegen es in der weiteren Verarbeitung nie weiter ging. Der MKV-Container kann ebenfalls kein echtes TrueHD mit eingewickeltem ac3, sondern nur den PCM-Datenstrom. In den Eigenschaften wurde immer 3 Audiostreams angezeigt, TrueHD, ac3 und PCM, so daß ich dachte, alles richtig gemacht zu haben.

Alleine dieser Fehler, nebst VLC hat etliche Zeit gekostet.

Bei der Gelegenheit sei also erwähnt, daß ich keine freie Software gefunden habe, die den TrueHD-Stream inklusive ac3 korrekt behandelt hat. Das Problem ließ sich später anders lösen. Das war an der Stelle erst mal egal, denn nun lagen die Kapitel einzeln vor und konnten mit MPHC zumindest abgespielt und begutachtet werden. Hier tauchte das nächste Problem auf. Einige Takte erhaltenswerter Tanzmusik befanden sich noch in zu löschenden Kapiteln, meistens so 1 bis 3 Sekunden.

MKVToolNix war hier die erste Wahl, denn man erstellte aus den beiden Kapiteln kurzerhand eine neues, suchte dann die Stelle, an der das Teil geteilt werden mußte und splittete es in einem nächsten Arbeitsschritt. Nach erklecklich kurzer Zeit lagen die erhaltenswerten Kapitel mit einer Gesamtgröße um die 30 Gig vor, was für eine Bluray entschieden zu viel war, da diese nur 25 haben darf.

Der Zufall wollte es, daß in einem ersten Testlauf nicht bemerkt wurde, daß der Tsmuxer ganz galant den reinen TrueHD-Stream galant unter den Tisch fallen ließ und nur Video und ac3 muxte, so daß diese Version punktgenau auf eine Scheibe paßte, ohne daß das Video rekodiert werden mußte.

Egal, welche Versuche auch unternommen wurden, die Ergebnisse des Tsmuxer waren durch die Bank unbrauchbar, da der einen Audioversatz produzierte, obwohl alle Kapitel als MKV in Bild und Ton synchron liefen. Der Tsmuxer erwies sich also als untauglich, wurde aber wegen einer Funktion benötigt, die wiederum nur diese Software beherrschte.

In einem Forum hieß es, die einzige Software, die akkurate BluRay-Strukturen erstellt, sei der TsRemuxer. Der kommt aus der Ecke der Digital-TV-Fans, die die HD-Sendungen mitschneiden und verarbeiten wollen. Die Fehlerfreiheit kann vollumfänglich bestätigt werden. Sie hat einen Nachteil. Der TsRemuxer frißt nur m2ts, als den für BluRay vorgesehenen Container.

War also die nächste zu klärende Frage, wie bekomme ich aus dem MKV-Container mit zerwichster Tonspur einen m2ts-Stream, der TsRemuxer zum Fraß vorgeworfen werden kann? Das hat wiederum etliche Stunden Probiererei gekostet, denn es stellte sich unerwartet ein zweites Problem ein. Die PCM-Daten (WAV-Datei Stereo) ließen sich aus den MKV nicht extrahieren. Sie wurden zwar brav abgespielt, aber blieben im Tresor. Erst mit der raw-Option von mkvextract und anschließender Bearbeitung in Audacity konnte das Problem gelöst werden, denn auch hier streikt die demux-Option vom tsmuxer als auch mkvextract. Die Software steigt aus.

Warum sind die PCM-Daten so wertvoll? Weil man sich dann eine eigene Version des Konzertes mit Mehrwert herstellen kann, die für den tragbaren Musikabspieler geeignet ist, die mehr enthält als die CD und mit 48 KHz auf die Ohrstöpsel geklöppelt wird.

Nach etlicher Probiererei ergab sich der folgende Werdegang. Die MKV-Kapitel wurden in ihre Elementarstreams zerlegt. Nun lag für jedes Kapitel das h264-Video, eine THD-, ac3- und PCM-Datei vor. Die beiden letzteren wurden für die BluRay verworfen, PCM für den mobilen Player weiter genutzt.

Das kleine feine Tool eac3to kann aus der THD wieder eine bluraykonforme Audiospur generieren.

eac3to tonspur.thd tonspur.thd+ac3

Das ist der Trick. Hiermit wird aus den PCM-Daten eine Dolby-Digital-Spur berechnet und gleich korrekt gemuxt, was alle anderen Programme dann auch gleich wieder zerstören. So kam der tsmuxer wieder zum Einsatz, denn ausnahmsweise muxt er Video und thd+ac3 korrekt zu einem m2ts-Container.

Nun gab es das gleiche Problem, wie bereits bei den MKV. Das Gesamtergebnis mit tsmuxer wurde unbrauchbar, weil wieder ein Audioversatz von etwa 1500 ms produziert wurde, der in der Originaldatei gar nicht vorhanden war.

Der TsRemuxer beherrscht das Thema, kann aber keine diskreten Dateien zusammenführen.

Lag also das nächste zu klärende Problem vor. Wie hänge ich einzelne m2ts ohne Tonversatz aneinander, so daß die THD+AC3-Spur erhalten bleibt? Das scheiterte an einer alten Version von ffmpeg. Die aktuellen können das, indem man ihnen das gute alte cat (concat) mit auf den Weg gibt.

ffmepg -i "concat:1.m2ts|2.m2ts|3.m2ts...." -vcodec copy -acodec copy konzert.m2ts

Mit diesem Kommando werden die Nutzdaten von den Containerheadern getrennt, aneinander gehängt und am Schluß mit einem neuen Header versehen.


Zweckmäßigerweise läßt man den TsRemuxer den Audioversatz korrigieren. So einer da ist, findet der den auch. Ergo wird "Bypass Audio Alignment" deaktiviert.

Diesen Datenstrom lädt man in den TsRemuxer, wählt als Ziel eine BluRay-Struktur, häkelt den Erhalt von Video- und Tonspur an, wählt noch die Abstände für konstante Kapitelmarker und drückt den Remuxknopf. Während man dem tsmuxer eine Kapitelliste zum Fraß vorwerfen kann, die zu einem unbrauchbaren Ergebnis führt, läßt der TsRemuxer nur feste Werte zu. Das ist kein Problem, da die Scheibe eh durchgehört wird. Dafür ist sie in Bild und Ton synchron.

Zusammenfassung.

Die auf die Musik reduzierte Fassung von "The Wall" paßt mit ausschließlich ac3-Spur ohne Videorekodierung auf ein BluRay. Für eine Schiebe mit THD+AC3 muß der Videostream rekodiert werden. Das erledigte dieses kleine script.

ffmpeg -i rwtw.h264 -c:v libx264 -profile:v high -level 4.1 -crf 12 output.h264

Der rwtw.h264 Videostream wurde durch demuxen aus der bereits fertigen nur-AC3-version gewonnen.

Die THD-Spur wurde wie oben angegeben zu einer THD+AC3 neu berechnet. Diese beiden Dateien wurden im tsmuxer zu einem m2ts-Conatienr gemuxt, der dann mit dem TsRemuxer weiterverarbeitet wurde.

Der reale Ablauf war allerdings ein anderer. Es wurde jedes Kapitel einzeln auf diese Art behandelt, um am Ende festzustellen, daß der tsmuxer Schrott ist, weil er nicht korrekt muxt. Die einzelnen m2ts wurden dann wie oben beschrieben zum Gesamtstream concattet. Das war's.

Da es nirgendwo im Netz eine Anleitung gab, wie das Problem zu lösen ist, mußte ich mich selber auf die Suche machen. Für die, die sowas ebenfalls interessiert, sei nach umfangreicher Irrung und Wirrung der Zeit schonendste Weg noch einmal skizziert.

1. Scheibe auf die Festplatte zuppeln.

2. Daten mit MKVToolNix in Kapitel zerlegen. Dabei wird TrueHD+AC3 zerstört und muß später neu generiert werden.

Als visuelle Kontrollsoftware taugt nur der MPHC, VLC ist Schrott.

3. Nun kann man mit MKVToolNix relativ komfortabel schneiden, indem man den Schnittpunkt im MPHC detektiert und den Zeitstempel dann in der Software nutzt. Das muß eventuell mehrfach gemacht werden, damit die Tonübergänge stimmen, denn ein-, aus- oder überblenden fällt aus.

4. Wer auf TrueHD verzichten kann, ist fast am Ziel. Mit ffmepg die MKVs in m2ts umwandeln, catten und den TsRemuxer füttern. Nur die AC3-Tonspur und das h264-Video wählen.

5. Ansonsten müssen die MKVs durch einen Demuxer, kann man mit tsmuxer oder MKVToolNix erledigen. Der würfelt einem die Elementarstreams aus. Die THD-Datei wie oben beschreiben zu einer THD+AC3 wandeln, bei Bedarf die h264-Datei rekodieren.

6. Nun die h264 und die THD+AC3 mit dem tsmuxer in einen m2ts-Container muxen. Das kann nur der, keine andere Software.

7. Die einzelnen m2ts-Container wie oben beschreiben mit ffmpeg catten. Das kann wiederum nur ffmpeg, nicht tsmuxer, und den fertigen Stream an den TsRemuxer durchreichen.

Brennen, Scheibe in den BluRay-Player legen und in den Sessel lümmeln. Es sind keine weiteren Interaktionen erforderlich, keine 5 Menüpunkte anklicken, keine Tonspur wählen usw. Man kann sich ganz dem Genuß der Musik widmen.

Das war das Ziel. Das wurde erreicht. Es hat sich gelohnt, auch wenn es der blanke Horror war, denn der funktionale Zustand zeitgemäßer Software ist katastrophal schlecht.

Der Text ist für unkundige Leser etwas konfus, spiegelt allerdings exakt den Werdegang des Freizeitvergnügens wider. Da es keine Lösung sondern nur an die hundert Probleme gab, mußte eine gefunden werden. So wie geschrieben, lief es auch ab. Eigentlich noch viel schlimmer, denn die unzähligen Recherchen auf Doom9 und Videohelp habe ich alle außen vor gelassen.