mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-10-30 09:16:55 +00:00
* fix(engine): extract long video ranges in segments and keep plan uploads flowing A distributed render's plan step extracted a whole video in one ffmpeg process, so a long clip hit ffmpegProcessTimeout (300 s) however much of Lambda's 15-minute limit was left, and every frame then uploaded in batches of 16 that each waited for their slowest blob. Ranges longer than two minutes now extract as two-minute segments that run side by side, each numbered after the last. They sample the same absolute times as a single pass, so the frames are byte-identical (checked on a 26-minute, 37,440 frame clip). Plan v2 publishing keeps 32 uploads in flight instead of batching. On a 10 GB Lambda the 26-minute clip's plan step fell from 395 s to 200 s. The Lambda docs now state the plan-step length bound. Fixes #5260 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(engine): split extraction on an integer frame count The split compared and subtracted float seconds, so 200.3 - 80.3 became 120.00000000000001 s: a second segment got `-t 1.42e-14`, which ffmpeg rejects, failing an ordinary two-minute range. The frame count now comes from extractionFrameCountForDuration, the rule a single pass follows, and every segment takes an exact frame count. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>