[RFC] Non-zero exit code when encoding is incomplete

104979058 via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <[email protected]>
Dear FFmpeg developers,

I would like to propose an improvement to FFmpeg's exit code behavior.

Problem

When encoding fails partway through (e.g., due to a corrupted input frame), FFmpeg still returns exit code 0. The output file exists with non-zero size, but is incomplete. This makes it impossible for programs calling FFmpeg to reliably detect encoding failure.

Current workarounds and their limitations:
Method
Problem

Exit code
Returns 0 even on incomplete output

Output file exists
File exists even when incomplete

File size &gt; 0
File has content even when incomplete

Duration comparison
Unreliable when -t, -ss, or trimming is used

stderr parsing
Different encoders produce different summary lines (e.g., "Qavg" for AAC, "muxing overhead" for muxer, "frame=" for video). The output order is also inconsistent across modules.


Example: encoding a corrupted input file produces an incomplete output with exit code 0:
ffmpeg -i corrupted_input.mp4 -c:v libx264 -c:a aac output.mp4 echo $?   # returns 0, but output.mp4 is incomplete 


Proposal

Return a non-zero exit code when encoding does not complete as expected (e.g., end of input stream not reached, or the duration specified by -t not achieved).

This would make exit code a reliable indicator of encoding completeness, consistent with standard CLI conventions where exit code 0 means "the task completed successfully."

Additional Observation

The stderr output order is inconsistent across modules. For example:
[out#0/mp4 ...] muxing overhead: 0.326370%     ← muxer finishes first frame=64238 fps=484 ... time=00:42:49.55 ...   ← then frame summary [aac @ ...] Qavg: 65531.836                     ← then encoder summary 


There is no unified, ordered, machine-readable completion indicator in stderr either.

I understand this may be a design choice rather than a bug, but I believe reliable exit codes would greatly improve FFmpeg's usability as a programmatic tool.

Thank you for your time and consideration.
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.