Posso fazer com que o ffmpeg pare se a verificação de integridade encontrar um erro?

5

Existe uma maneira de impedir que o ffmpeg seja processado se um erro foi encontrado? Estou usando o ffmpeg para verificar a integridade do vídeo usando:

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

No entanto, eu gostaria de expandi-lo para interromper o processo assim que um erro for identificado.

    
por Kate 26.04.2013 / 19:26

2 respostas

5

Eu já me perguntei sobre isso e ffmpeg não oferece uma maneira fácil de fazer isso. Com base no feedback que recebi sobre o Lista de discussão do FFmpeg , você pode usar a opção global

-err_detect explode

Esta opção parece não funcionar em todos os casos. Veja ffmpeg -h full para a lista de opções:

-f_err_detect      <flags>      .D.... set error detection flags (deprecated; use err_detect, save via avconv)
   crccheck                     .D.... verify embedded CRCs
   bitstream                    .D.... detect bitstream specification deviations
   buffer                       .D.... detect improper bitstream length
   explode                      .D.... abort decoding on minor error detection
   careful                      .D.... consider things that violate the spec and have not been seen in the wild as errors
   compliant                    .D.... consider all spec non compliancies as errors
   aggressive                   .D.... consider things that a sane encoder shouldnt do as an error
-err_detect        <flags>      .D.... set error detection flags
   crccheck                     .D.... verify embedded CRCs
   bitstream                    .D.... detect bitstream specification deviations
   buffer                       .D.... detect improper bitstream length
   explode                      .D.... abort decoding on minor error detection
   careful                      .D.... consider things that violate the spec and have not been seen in the wild as errors
   compliant                    .D.... consider all spec non compliancies as errors
   aggressive                   .D.... consider things that a sane encoder shouldnt do as an error
    
por 26.04.2013 / 20:22
5

Em uma opção:

-xerror 

A opção de linha de comando é documentada como fazendo exatamente o que você deseja.

Adicione a opção e o ffmpeg sairá em um erro de fluxo (também configurando o valor de saída como 1) de:

ffmpeg -h full | grep xerror .... -xerror error exit on error
    
por 28.02.2015 / 05:07

Tags