ffmpeg bleibt hängen, wenn -fflags +genpts verwendet wird

ffmpeg bleibt hängen, wenn -fflags +genpts verwendet wird

Ich versuche, eine .vob-Datei (die ich mit vobcopy erstellt habe) mit ffmpeg 4.2.4-ubuntu0.1 in einen mp4-Container zu remuxen (mkv würde es auch tun). Zunächst war das Remuxen abgeschlossen, aber ich erhielt diese Fehler:

[mp4 @ 0x560f9a37e5c0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly

und mehrere tausend Mal

[mp4 @ 0x560f9a37e5c0] pts has no value

Also habe ich versucht, das Problem folgendermaßen zu beheben -fflags +genpts:

ffmpeg -fflags +genpts -i 'video.vob' -c copy 'video.mp4'

Nach der Verarbeitung von etwa 90.000 Frames bleibt ffmpeg irgendwie hängen (die CPU läuft jedoch zu 100 %) und kann nur in killKombination mit Strg+C beendet werden.

Ich habe es mit einer anderen .vob-Datei versucht und ffmpeg blieb dieses Mal an einer anderen Stelle hängen.


Beim Erstellen des vollständigen Debug-Logs fiel mir auf, dass nach einem Programmabbruch immer der gleiche zuletzt bearbeitete Frame (92775) ausgegeben wird. Hier kann man ihn einsehen:https://paste.ubuntu.com/p/tbhMmpQwff/

Antwort1

Ich habe das Problem behoben, indem ich das +igndtsFlag hinzugefügt habe:

ffmpeg -fflags +genpts+igndts -i 'video.vob' -c copy 'video.mp4'

Es kam zu einigen Fehlermeldungen an der Stelle, an der ffmpeg zuvor hängen geblieben war, aber die erstellte Videodatei war in Ordnung.

[mp4 @ 0x56482f355a00] Invalid DTS: 333993600 PTS: 0 in output stream 0:0, replacing by guess
[mp4 @ 0x56482f355a00] Non-monotonous DTS in output stream 0:0; previous: 334018800, current: 334018800; changing to 334018801. This may result in incorrect timestamps in the output file.

Ich bin nicht sicher, was das Problem verursacht hat und wie +igndtses behoben werden kann, aber ich bin froh, dass es funktioniert.

verwandte Informationen