
Das Problem:
Ich muss regelmäßig zwei MKV-Dateien mit ffmpeg sauber zusammenfügen. In etwa 10 bis 20 % der Fälle treten bei den letzten 3 bis 5 Bildern des ersten Videosegments in verschiedenen Videoplayern (VLC und PotPlayer zum Testen) Probleme auf. Der typische Effekt ist, dass beim Abspielen des Videos das dritt- bis fünftletzte Bild des ersten zusammengefügten Segments einfriert und für die nächsten paar Bilder auf dem Bildschirm bleibt, bis zum Beginn des zweiten zusammengefügten Segments. Der Ton wird hinter dem Bild immer noch ordnungsgemäß abgespielt. Seltsamerweise scheinen alle Bilder vorhanden zu sein, wenn ich in VLC die Steuerung „e“ verwende, um Bild für Bild durch die Sequenz zu blättern. Beide Segmente stammen aus derselben Quelle und haben alle dieselben Eigenschaften. Das Quellsegmentnichthabe dieses Problem allein. Die Quellsegmente werden bei der Produktion selbst codiert, daher sollten sie keine Keyframing-Probleme haben.
Was ich versucht habe:
- Nur das Video kodieren, wenn der Verkettungsbefehl ausgegeben wird (Audio und Untertitel kopieren)
- Kodierung von Video und Audio bei der Ausgabe des Verkettungsbefehls (Kopieren von Untertiteln)
- Erhöhen Sie die Werte für analyzeuration und probesize, wie in den Warnungen empfohlen
- Das Problem tritt weiterhin auf, wenn nur das Video ausgegeben wird (kein Ton, keine Untertitel).
- Ich habe Beiträge über Probleme gesehen, die diesem sehr ähnlich sind, aber ich kann die Wunderwaffe nicht finden.
Was ich tue, führt zu diesem Problem:
Der Befehl, den ich ausgebe, ist
ffmpeg.exe -f concat -safe 0 -i "C:\Users\test\Downloads\ConcatListTEMP00000.txt" -c copy -map 0 "C:\Users\test\Downloads\TEST JOIN COPY.mkv"
Der Inhalt der Verkettungsdatei ist
file 'C:\Users\test\Downloads\CutSegmentTEMP0001.mkv'
file 'C:\Users\test\Downloads\CutSegmentTEMP0002.mkv'
Hier ist ein Pastebin-Link zur Konsolenausgabe beim Ausführen des obigen Befehls: https://pastebin.com/mpBS6TZY
Antwort1
Die Verwendung von Trim-, Atrim- und Concat-Filtern in einem Filtergraphen scheint das Problem gelöst zu haben. Auf die Untertitel werde ich gesondert eingehen.