Tengo un script que usa FFMPEG para convertir muchos archivos. Si lo detengo, el archivo que estaba generando actualmente se mantendrá en un estado incompleto.
¿Hay alguna manera de que FFMPEG escriba en un archivo temporal (por ejemplo, FILENAME_incomplete) para poder identificar fácilmente las conversiones abortadas?
Respuesta1
Si lo cancela manualmente, entonces esto no se implementa ya que ffmpeg no tiene el concepto de progreso per se. No sabe que una salida tendrá una duración de 200 segundos y, por lo tanto, si se detiene a los 100 segundos, el procesamiento estará incompleto.
Si ffmpeg se detiene debido a un error, su código de salida será> 0. Entonces, puede detectarlo y eliminar el archivo de salida correspondiente.
Respuesta2
Bueno, leer el código de error es una forma, sin embargo, no es a prueba de fallas; por ejemplo, si el terminal está desactivado o algo así.
Puede nombrar su archivo de salida como Filename.incomplete.mpeg
en la línea posterior ffmpeg
en su script, verifique que el código de salida ( $?
para bash
scripts) sea 0, en cuyo caso se supone que ffmpeg
se completó normalmente y puede cambiar el nombre del archivo a Filename.mpeg
.
También he notado que la salida incorrupta tiene una línea de tiempo corrupta. Probablemente haya formas de comprobar que el archivo de salida esté completo (usando ffprobe
quizás).