ffmpeg — пропустить процесс, если вывод уже существует

ffmpeg — пропустить процесс, если вывод уже существует

Я запускаю пакетный скрипт для конвертации видеофайла в Python, но может случиться так, что выходной файл уже существует, так есть ли возможность избежать вопроса ffmpeg о том, что делать, если выходной файл уже существует? Я хочу, чтобы он автоматически пропускал процесс.

решение1

Изffmpegдокументация:

-n (Глобальный)
Не перезаписывать выходные файлы и немедленно выйти, если указанный выходной файл уже существует.

Использование:

$ ffmpeg -n -i input output.mp4
  File 'output.mp4' already exists. Exiting.
  • -nявляется глобальной опцией. Глобальные опции должны быть указаны первыми.
  • Противоположный вариант — -yавтоматически перезаписывает вывод без запроса.

Примечание:Есть ошибка, которая приводит к -nнеработоспособности в некоторых случаях, например, с тройником и мультиплексорами изображений. См. отчет об ошибке#8492: tee muxer молча перезаписывает выходные файлыПока эта ошибка не будет исправлена, рекомендуется сначала провести тестирование или использовать свой язык сценариев, чтобы проверить, существует ли вывод.

решение2

В идеале ваш скрипт должен проверять наличие входных и выходных файлов до того, как вы вызовете ffmpeg для выполнения его (потенциально) опасной операции. Под опасной я подразумеваю перезапись существующих файлов...

Убедившись, что выходные данные уже существуют, ваш скрипт может перейти к обработке следующего файла.

Связанный контент