Can I make ffmpeg stop if integrity check encounters an error?
I've already wondered about this myself, and ffmpeg
doesn't provide an easy way to do that. Based on the feedback I got on the FFmpeg mailing list, you can use the global option
-err_detect explode
This option doesn't appear to work in all cases though. See ffmpeg -h full
for the option list:
-err_detect <flags> .D.... set error detection flags
The values are as follows:
Possible values:
crccheck
: verify embedded CRCs
bitstream
: detect bitstream specification deviations
buffer
: detect improper bitstream length
explode
: abort decoding on minor error detection
ignore_err
: ignore decoding errors, and continue decoding. This is useful if you want to analyze the content of a video and thus want everything to be decoded no matter what. This option will not result in a video that is pleasing to watch in case of errors.
careful
: consider things that violate the spec and have not been seen in the wild as errors
compliant
: consider all spec non compliancies as errors
aggressive
: consider things that a sane encoder should not do as an error
In an option:
-xerror
The command line option is documented as doing exactly what you want.
Add the option and ffmpeg will exit on a stream error (also setting exit value to 1) from:
ffmpeg -h full | grep xerror .... -xerror error exit on error