ffmpeg - Pomiń proces, jeśli dane wyjściowe już istnieją

20

Używam skryptu wsadowego do konwersji pliku wideo w Pythonie, ale może się zdarzyć, że plik wyjściowy już istnieje, więc czy istnieje możliwość uniknięcia pytania ffmpeg, co mam zrobić, jeśli dane wyjściowe już istnieją? Chcę, aby automatycznie pomijał proces.

Hyperion
źródło

Odpowiedzi:

29

Z ffmpegdokumentacji :

-n (globalny)
Nie nadpisuj plików wyjściowych i zakończ natychmiast, jeśli określony plik wyjściowy już istnieje.

Stosowanie:

$ ffmpeg -n -i input output.mp4
  …
  File 'output.mp4' already exists. Exiting.
  • -njest opcją globalną. Najpierw należy określić opcje globalne.
  • Przeciwną opcją jest to, -yże automatycznie nadpisze dane wyjściowe bez pytania.
Llogan
źródło
3

Najlepiej byłoby, gdyby skrypt sprawdził istnienie plików wejściowych i wyjściowych przed wywołaniem ffmpeg w celu wykonania (potencjalnie) niebezpiecznej operacji. Przez niebezpieczne rozumiem nadpisywanie istniejących plików ...

Po upewnieniu się, czy dane wyjściowe już istnieją, skrypt może przejść do następnego pliku w celu przetworzenia.

Kinnectus
źródło
coś takiego jak stackoverflow.com/a/638980/1265980 może pomóc.
Ereli,
1
jeśli używasz Pythona, możesz sprawdzić, czy plik istnieje, używając pathlib - stackoverflow.com/a/82852/1265980
Ereli