Repository navigation
Keep a render's memory flat as the video grows - #12
Merged
Merged
Conversation
A preview failed with ffmpeg killed by signal 9. Measured on a 4-core box, three of a render's ffmpeg runs grew with the video: - The blended stitch opened every shot as an input at once, each with a decoder thread per core: 1.9 GB for 80 preview shots. It now stitches runs of 8 shots with single-threaded decoders and remuxes the runs (147 MB for the same 80). A run ends at a cut, or in a shot's trailing hold just before it blends out, so the picture is still encoded once. - The overlay pass looped every layer for the whole video, decoding each one on every frame. Each layer now exists only for its window: the same output, 561 -> 359 MB and 140 s -> 7 s for 30 layers. - A preview Ken Burns shot read stills at the same 24 MP as 4K. Previews now read at 8 MP: 442 -> 219 MB a shot. Full renders are unchanged. A failed render's error now names the step it was on, so the next one says whether it was a shot, the stitch or the overlays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJkfhgbVRktPf2Lg6XXfNs
Owner
Author
|
Backend (pytest) was cancelled before any test ran. The job hit its 10-minute I don't have permission to re-run jobs (the API returns 403). Clicking Re-run failed jobs on the run should be enough. My next code push to this PR would also re-run it. Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A preview failed with
ffmpeg failed (killed by signal 9 (most likely out of memory)). I measured peak memory for each of a render's ffmpeg steps on a 4-core box. Three of them grew with the size of the video.Changes
concat -c copy. A run ends either at a cut or just before a shot blends out, which lands the split in the shot's trailing hold (silence). The picture is still encoded only once. Checked against the single pass: same frame count, frame-for-frame match (min 41.5 dB PSNR), exact total length.-itsoffsetand-tin place of looping each layer for the whole video. The output is bit-identical to before.Rendering, shot 12 of 40: ffmpeg failed (…).Testing
pytest -q: 674 passed. New tests cover chunk planning, the trimmed stitch argv, overlay windows, the preview read budget and the error prefix.Generated by Claude Code