JOB_TIMEOUT_MS was 120 seconds, which is a budget rather than a ceiling: it fits a short clip and
nothing else. Video encoding is measured against the length of the video — a 30-second hero at two
renditions takes about 40 seconds — so a two-minute upload could not finish and failed with "Encoding
took longer than 120s and was stopped". The file was fine, the encoder was working, and it was killed
for being ordinary.
Thirty minutes now. It is still a ceiling and still does the job it was written for: a crafted file
cannot hold a worker for the life of the process. Nothing legitimate this service is asked for
approaches half an hour, and a runaway is still stopped.
The default has to fit the worst LEGITIMATE case, because guessing low costs a rejected upload and
guessing high costs a runaway running a little longer before being killed anyway. A machine that only
converts photographs can tighten it with AV_CLUB_JOB_TIMEOUT_MS.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>