Wie sauberen Containerwechsel: .ts (H264, AAC) und externe AC3 zu MP4?

Begonnen von Eplrbsns, Februar 29, 2016, 00:38:45

« vorheriges - nächstes »

Eplrbsns

Hallo,

ich bin gerade auf der Suche nach dem technisch sauberen Weg für folgendes Szenario:

Vorhanden ist:

1 x TS-Datei (1080p29,970  H264, AAC)
1 x AC3-Datei

Ziel:

1 x MP4-Datei mit dem AC3- als erste und dem AAC-Track als zweite Tonspur und Kapitelmarkierungen, "iOS-konform" (die verschiedenen Streams würden von ihren Eigeschaften her passen).

Das ganze soll ohne Transkodieren stattfinden. Was wäre hierfür der beste Weg? Probiert habe ich, die TS-Datei (überprüft und in Ordnung) mit TS Doctor zu demuxen und anschließend mit dem OS X-Programm "Subler" (Windows-Lösungen willkommen) mit den verschiedenen Einzeldateien zu muxen. Leider hat Subler hier einen Bug, das Video fälschlicherweise als 23,976 fps-Material zu erkennen, was dazu führt, dass die erstellte MP4-Datei in Zeitlupe läuft. Eine Option, die fps hier manuell zu korrigieren, habe ich nicht finden können.

Vielen Dank für die Hilfestellung!

Mam

Also, ich würde an Deiner Stelle so vorgehen (gibt bestimmt auch andere Wege, aber der hier geht bestimmt)

Benötigt werden die Programme "mkvtoonix" und "handbrake".

Fangen wir an mit Handbrake, das ist eigentlich dafür da, den Film komplett neu zu encoden. Das tun wir nun auch, wobei wir als Videoziel das kleinste und dümmste angeben, was möglich ist (also Bildgrösse z.B. 320x240).
Auf der Audioseite wählen wir als Ausgabe AAC, 160kbit/s (mehr ist bei Filmen eigentlich nicht nötig) und als Mixdown entweder Dolby Pro Logic II oder nur banales Stereo.

Und ab gehts, das Encoden dauert ein kleines Bißschen, dank dem "billigen" Filmformat (der geneigte Leser ahnt es schon, diese Videospur schmeissen wir gleich weg!) gehts aber sehr zügig.

Fertig! nun haben wir einen völlig bescheidenen MP4 (oder MKV) Film.

Nun starten wir die MKVToolNix Gui und werfen als erstes unseren ORIGINALFILM in das Fach mit den Quellen rein.
Anschließend nun den gerade mit Handbrake erzeugten Film
unter "Spuren" finden wir nun 2 Videospuren und 2 Audiospuren.
Entfernen wir den Haken vor der "billigen" Videospur und geben unter Zieldateiname unseren Wuschnamen an.
Ein beherzter Klick auf "Muxen starten" produziert nun ebendiese.


Und, wie durch ein Wunder, sie enthält nun Dein unangetastetes Originalvideo, die originale Dolby Spur und die neue AAC Spur!
Mission completed  ;D

Na ja, fast, denn hier kommt immer eine MKV Datei raus. Allerdings findest Du reichlich Tools, um ggf daraus wieder MP4 zu machen (ich würds aber bei MKV lassen, MP4 hat öfters Stress bei mehrfach vorhandenen Spuren, manche Abspieler kommen da ins Trudeln.


Eplrbsns

Hi,

Danke für die Tipps! Ich hoffe, ich komme nicht gemein rüber, aber als "sauber" würde ich den Weg nicht unbedingt bezeichnen ;)
Und wofür soll eine neue AAC-Spur kodiert werden, wenn bereits eine vorhanden ist, die übernommen werden soll?

Ich konnte selbst noch eine Lösung finden, dachte, ich hätte die aktuellste Version von "Subler" verwendet, aus irgend einem Grund hat der Updater jedoch immer die völlig veraltete Version belassen. Erst ein manuelles Löschen und neu Installieren führte zu einer Aktualisierung.

Mit der aktuellen Version von Subler kann man nun auch die FPS des Video-Streams festlegen und die ursprünglich beschriebenen Probleme sind passé.

Mit Subler habe ich sehr gute Erfahrungen gemacht, zuetzt Ende 2014, wo andere Programme stets Probleme mit MP4-Containern und der Tonsynchronität bei mehreren Tonspuren verursachten. Auch mit der aktuellen Version und 29,97 fps-Material läuft's selbst nach mehrmaligem Wechsel der Spuren und Hin- und Herspulen synchron.

Mam

Zitat von: Eplrbsns am März 02, 2016, 18:00:36
Danke für die Tipps! Ich hoffe, ich komme nicht gemein rüber, aber als "sauber" würde ich den Weg nicht unbedingt bezeichnen ;)
Und wofür soll eine neue AAC-Spur kodiert werden, wenn bereits eine vorhanden ist, die übernommen werden soll?

Oh, Sorry, das hatte ich falsch (bzw. NICHT) gelesen  ;D

Na ja, aber dann ist das doch alles viel einfacher, vergiss Teil1 mit Handbrake & Co und geht direkt zu Teil 2 mit MkvToolnix über.
Beide Dateien dort reinladen, neu muxen lassen (die Standardspur einstellen, damit die Player bevorzugt das nehmen, was Du hören willst), fertig.

Damit das Ganze nicht so einfach ist, wird es wahrscheinlich passieren, dass die beiden Dateien nicht zum gleichen Zeitpunkt beginnen, das Ergebnis ist dann nicht "lippensynchron".
Deshalb schliesse die Gui nach dem Muxen nicht sofort, teste erstmal das Ergebnis.
Wenns nicht passt, für diese Spur dann ein "Delay" eingeben (Tipp! Delay kann auch negativ sein, wenn der Ton zu spät einsetzt), neu Muxen, Testen, ggf von vorne...
(kann nervig sein, denn ausser Deinem Gehör hilft Dir niemand beim Schätzen)
Was auch dabei helfen kann sind Programme wie Adobe Premiere o.ä. Bei denen kann man üblicherweise die Audiospuren als Grafiken anzeigen lassen und sich signifikante Stellen aussuchen und somit die Differenz ausrechnen. Ist aber etwas mit Kanonen auf Spatzen geschossen...

Djfe

man könnte auch die Tonspuren demuxen und jeden anderen (Gratis) Waveeditor wie Audacity nehmen, die Tonspuren reinladen und dann gegeneinander verschieben ;)

Den Delay kann man dann "einfach" ablesen und bei MKVToolnix eintragen

fürs demuxen kann man z.B. FFmpeg nehmen


www.cypheros.de