nur MKV zu TS umverpackt - Ergebnis ruckelt

  • Ich habe hier ein MKV was aus einem h264-Videostream; mp2-Audio-Stream und einem DVB - Untertitelstream besteht.

    Dieses MKV möchte ich einfach nur umverpacken zu TS.

    TS-Muxer scheidet aus weil es mit MKV und dem DVB-Substream nicht klar kommt.

    Also habe ich es mit FFMPEG probiert. Einfach nur per copy.


    ffmpeg -i "test3kurz.mkv" -vcodec copy -acodec copy -scodec copy -f mpegts output-file.ts


    Nur ruckelt das Ergebnisvideo (outputfile.ts) und ich weiß nicht warum. Habe es im MPC und VLC probiert. Auch Tmpegenc Authoringworks hat damit Probleme.


    Hier mal meine Videos. Das Originale und das Output.

    Was stimmt da nicht?


    https://www.dropbox.com/sh/rgk…dpyesGRBgu1ad8xFvR1a?dl=0


    Edit: Kodi hat weniger Probleme mit dem Output-file.ts. Da ruckelt es fast nicht bzw. schwer zu erkennen.

  • Bei mit werden die beiden Sachen 1:1 abgespielt. 0 Unterschied.

    Mit MPV und Potplayer getestet.


    Edit: Im windows media player sehe ich allerdings das Ruckeln.


    Per MediaInfo sehe ich auf den ersten Blick nur diesen Unterschied:

    MkV

    Frame rate mode : Variable

    Frame rate : 50.000 FPS

    Original frame rate : 25.000 FPS


    TS

    Frame rate : 25.000 FPS


    Evtl hängt es ja damit zusammen.


    Edit2

    ffmpeg haut viele Warnungen raus beim muxxen.

    [mpegts @ 000001e55bf08800] Non-monotonous DTS in output stream 0:0; previous: 2356200, current: 2350800; changing to 2356201. This may result in incorrect timestamps in the output file.

  • Es kann mit Details der Encodierung zusammenhängen, die in den verschiedenen Containern unterschiedlich unterstützt werden, und von ffmpeg dann jeweils mehr oder weniger zuverlässig. Gerade zwischen PAFF- und MBAFF-Interlacing kann der Unterschied der Speicherung im TS-Container erheblich sein.

  • Offenbar erzeugt ffmpeg da einen unvollständigen Transport-Stream. Vielleicht genügt das Remultiplexen mit tsMuxeR oder ähnlichen Spezialisten.


    Ach so, du hast oben schon was geschrieben dazu... ja, deren Grenzen kenne ich leider nicht. Aber ich kann ja mal parallel im doom9-Forum nachfragen, was da so empfohlen wird.

  • Wenn ich "ja" klicke, ruckelt das Ergebnis nicht mehr. Aber dafür wurde die Subtitlespur rausgeworfen. Das nützt mir nix.

    Es nützt dir schon was, weil Avidemux (oder vielleicht auch tsmuxer) die Timecodes beim Kopieren korrigiert.

    ffmpeg kann die korrigierte Fassung problemlos kopieren.


    Danach kannst du es mit ffmpeg nochmal mit den Untertiteln zusammen muxen.


    z.B.

    avidemux.ts ist Video+Audio von Avidemux von test3kurz.mkv kopiert und korrigiert

    test3kurz.mkv ist deine Originaldatei


    beide in ffmpeg einlesen, und per map Parameter auswählen, welche Streams aus den einzelnen Dateien kopiert werden sollen.

    -map 0:v -map 0:a bedeutet alle Video und Audio Streams aus Datei 0 kopieren.

    -map 1:s? -map 1:d? bedeutet alle Subtitle und Data Streams aus Datei 1 kopieren.


    (das ? am Ende von 1:s?, bedeutet, brich nicht mit einem Fehler ab, wenn du mal keinen geeigeten Stream findest)



    ffmpeg -i avidemux.ts -i test3kurz.mkv -c:v copy -c:a copy -c:s copy -c:d copy -map 0:v -map 0:a -map 1:s? -map 1:d? output-file2.ts



    Umständlich, geht bei mir aber mit deinen Testdateien.

  • hmm nächstes Problem. Avidemux meckert zwar bei dem kurzen Testfile, dass Timecodes nicht stimmen, aber dann beim großen vollständigem Video meckert er nicht (und somit habe ich keine Möglichkeit die Korrektur zu erzwingen) und es erstellt nun auch ein ruckelndes TS.


    Also bleibt nur TSMuxer. Wenn ich deinen Weg gehe (monarc99), haben mit dem Ergebnisvideo VLC und Tmpegenc Authoring Works (TAW) große Probleme. TAW stürzt beim Einlesen fast ab oder braucht ewig um es einzulesen oder im Video umherzuspringen.

    Mit mpc scheint es zu gehen. Ich habe den Weg nun etwas abgewandelt.


    1.Original.MKV demuxen mit MKVExtract

    2. AVC und MP2 Streams mit TSMuxer muxen zu TS

    3. dann ffmpeg -i TSmuxer.ts -i "Origfile.mkv" -c:v copy -c:a copy -c:s copy -c:d copy -map 0:v -map 0:a -map 1:s? -map 1:d? output-file.ts


    Das output-file läuft dann in MPC und TAW ohne Probleme.


    VLC will dann immernoch nicht, er spielt es gar nicht ab.


    Naja soweit schonmal ganz gut. Danke für die Hilfe.

  • Naja, interlaced ist es, weil es so gesendet wurde. Das war mal ein DVB-Sat-TransportStream. Mit TS-Doctor geschnitten und dann mit MKVmerge zu MKV gemuxt. Nur leider sieht in MKVs das TAW die Untertitel nicht mehr. Und das Originale TS-File habe ich natürlich (aus Übermut :) ) gelöscht.

    Wenn ich TAW ein TS-File gebe, liest er auch die Untertitel ein und belässt sie so (in allen schönen Farben) wie sie mal gesendet wurden. Ohne dass ich OCR vorher machen muss.


    Aber du hast recht, es ist so sowieso nicht BluRay oder DVD kompatibel und müsste umcodiert werden. Aber anders als über den TS-Stream kriege ich die Untertitel nicht in TAW eingelesen.

  • Vielleicht einfach die Untertitel extrahieren (per OCR als srt), z.B.


    1

    00:00:07,191 --> 00:00:13,316

    -Dobré ráno. -Dobré.

    -Dobré. Tak pojdte.


    2

    00:00:14,113 --> 00:00:16,502

    Nevíš, proc nás

    Kapr svolal?


    3

    00:00:16,502 --> 00:00:20,147

    Asi budeme svedky

    ukrižování páne Rybníkova.


    4

    00:00:20,147 --> 00:00:21,147

    -Myslíš páne Kabátova?

    -Toho též.

  • Ja, wollte ich aber nicht. Weil das Original mit (glaub ich) 4 Farben arbeitet und ich die behalten wollte. Ausserdem schleicht sich bei OCR immer mal ein Fehler ein.

    Aber OCR habe ich mittels Subtitle Edit schon gemacht. Denn ich brauche ja die Subs in Textform damit ich sie übersetzen kann. Nur wollte ich eben das Original unangetastet lassen und das geht mit TAW ganz gut.