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 demffmpeg
Dokumentation:
-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.
-n
ist eine globale Option. Globale Optionen sollten zuerst angegeben werden.- Bei der umgekehrten Option
-y
wird die Ausgabe automatisch und ohne Rückfrage überschrieben.
Notiz:Es gibt einen Fehler, der -n
in 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.