ffmpeg - Prozess überspringen, wenn die Ausgabe bereits vorhanden ist

ffmpeg - Prozess überspringen, wenn die Ausgabe bereits vorhanden ist

Ich führe ein Batch-Skript aus, um eine Videodatei in Python zu konvertieren, aber es kann vorkommen, dass die Ausgabedatei bereits vorhanden ist. Gibt es also eine Option, um zu vermeiden, dass ffmpeg mich fragt, was zu tun ist, wenn die Ausgabe bereits vorhanden ist? Ich möchte, dass der Vorgang automatisch übersprungen wird.

Antwort1

Von demffmpegDokumentation:

-n (weltweit)
Überschreiben Sie keine Ausgabedateien und beenden Sie das Programm sofort, wenn eine angegebene Ausgabedatei bereits vorhanden ist.

Verwendung:

$ ffmpeg -n -i input output.mp4
  File 'output.mp4' already exists. Exiting.
  • -nist eine globale Option. Globale Optionen sollten zuerst angegeben werden.
  • Bei der umgekehrten Option -ywird die Ausgabe automatisch und ohne Rückfrage überschrieben.

Notiz:Es gibt einen Fehler, der -nin manchen Fällen, wie z. B. bei den Tee- und Bildmultiplexern, nicht funktioniert. Siehe Fehlerbericht#8492: Tee-Muxer überschreibt stillschweigend Ausgabedateien. Bis dieser Fehler behoben ist, wird empfohlen, zunächst zu testen oder mithilfe Ihrer Skriptsprache zu prüfen, ob die Ausgabe vorhanden ist.

Antwort2

Idealerweise sollte Ihr Skript die Existenz der Eingabe- und Ausgabedateien prüfen, bevor Sie ffmpeg aufrufen, um seinen (potenziell) gefährlichen Vorgang auszuführen. Mit gefährlich meine ich, vorhandene Dateien zu überschreiben ...

Sobald Sie festgestellt haben, ob die Ausgabe bereits vorhanden ist, kann Ihr Skript mit der Verarbeitung der nächsten Datei fortfahren.

verwandte Informationen