¿Puedo detener ffmpeg si la verificación de integridad encuentra un error?

7

¿Hay alguna manera de detener el procesamiento de ffmpeg si se encuentra un error? Estoy usando ffmpeg para verificar la integridad del video usando:

ffmpeg -v error -i file.avi -f null - 2>error.log

Sin embargo, me gustaría ampliarlo para detener el proceso tan pronto como se identifique un error.

Kate
fuente

Respuestas:

6

Ya me he preguntado sobre esto, y ffmpegno proporciona una manera fácil de hacerlo. Según los comentarios que recibí en la lista de correo de FFmpeg , puede usar la opción global

-err_detect explode

Sin embargo, esta opción no parece funcionar en todos los casos. Consulte ffmpeg -h fullla lista de opciones:

-err_detect        <flags>      .D.... set error detection flags

Los valores son los siguientes:

Valores posibles:

  • crccheck: verificar CRC incrustados

  • bitstream: detectar desviaciones de especificación de flujo de bits

  • buffer: detectar longitud de flujo de bits inadecuada

  • explode: aborta la decodificación en la detección de errores menores

  • ignore_err: ignora los errores de decodificación y continúa la decodificación. Esto es útil si desea analizar el contenido de un video y, por lo tanto, desea que todo se decodifique sin importar qué. Esta opción no dará como resultado un video que sea agradable de ver en caso de errores.

  • careful: considere las cosas que violan la especificación y que no se han visto en la naturaleza como errores

  • compliant: considere todos los incumplimientos de especificaciones como errores

  • aggressive: considere las cosas que un codificador sano no debe hacer como un error

slhck
fuente
¡Gracias! Voy a probar esa opción, es mejor capturar algunos errores que nada :)
Kate
6

En una opcion:

-xerror 

La opción de línea de comando está documentada como haciendo exactamente lo que desea.

Agregue la opción y ffmpeg saldrá en un error de transmisión (también configurando el valor de salida a 1) de:

ffmpeg -h full | grep xerror .... -xerror error exit on error
Michelle Sullivan
fuente
1
Muchas gracias, eso es exactamente lo que quiero, creo que esta es la respuesta. no es la respuesta de slhck.
pylover