Unvollständige Ausgabe von ffmpeg kennzeichnen

Unvollständige Ausgabe von ffmpeg kennzeichnen

Ich habe ein Skript, das FFMPEG verwendet, um viele Dateien zu konvertieren. Wenn ich es stoppe, bleibt die aktuell ausgegebene Datei in einem unvollständigen Zustand.

Gibt es eine Möglichkeit, FFMPEG dazu zu bringen, in eine temporäre Datei zu schreiben (z. B. FILENAME_incomplete), sodass ich abgebrochene Konvertierungen leicht identifizieren kann?

Antwort1

Wenn Sie es manuell abbrechen, ist dies nicht implementiert, da ffmpeg per se kein Fortschrittskonzept hat. Es weiß nicht, dass eine Ausgabe 200 Sekunden lang sein wird, und wenn es nach 100 Sekunden gestoppt wird, war die Verarbeitung daher unvollständig.

Wenn ffmpeg aufgrund eines Fehlers stoppt, ist sein Exitcode > 0. Sie können das also abfangen und die entsprechende Ausgabedatei löschen.

Antwort2

Das Lesen des Fehlercodes ist eine Möglichkeit, allerdings ist dies keine Ausfallsicherheit – beispielsweise wenn das Terminal abgestürzt ist oder so.

Sie können Ihre Ausgabedatei wie folgt benennen: Überprüfen Sie Filename.incomplete.mpegdann in der Zeile danach ffmpegin Ihrem Skript, ob der Exit-Code ( $?für bashSkripte) 0 ist. In diesem Fall wird davon ausgegangen, dass der Vorgang ffmpegnormal abgeschlossen wurde, und Sie können die Datei in umbenennen Filename.mpeg.

Mir ist auch aufgefallen, dass die unbeschädigte Ausgabe eine beschädigte Zeitleiste hat. Es gibt wahrscheinlich Möglichkeiten zu überprüfen, ob die Ausgabedatei vollständig ist (mithilfe von ffprobemaybe).

verwandte Informationen