Segmented capture always fails with `--format mov`
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend, performance
Research direction
Read packages/producer/src/services/render/stages/captureSegmentedStage.ts, focusing on segmentOutputPath and its callers. Reproduce with the provided command using --format mov, then trace how the output format reaches the segment path. Done means segmented MOV output uses a compatible segment container and renders successfully; compare it with a non-segmented render as described in the issue.
Written by the indexing model from the issue text.
Description
Versions: 0.8.157, 0.8.166 and 0.8.179 (reproduced on Windows 11; the code path is platform-independent). Still present on main as of 2026-10-26 (packages/producer/src/services/render/stages/captureSegmentedStage.ts, segmentOutputPath), i.e. in 0.8.204.
Repro
HF_SEGMENTED_CAPTURE=true HF_SEGMENT_FRAMES=48 npx hyperframes render ./comp --format mov -o out.mov
Expected: ProRes 4444 segments concatenated into out.mov.
Actual: the first segment encode fails. The muxer rejects ProRes inside an .mp4 container.
Cause: segmentOutputPath(segmentDir, index) hardcodes the extension:
return join(segmentDir, `segment_${String(index).padStart(5, "0")}.mp4`);
shouldSegmentCapture accepts both mp4 and mov, but each segment is always written as .mp4.
Suggested fix: pass the output format into segmentOutputPath and use .${format}, with mov for ProRes/alpha. Our local patch reads the extension from an env var. With that patch, segmented mov renders are bit-identical to non-segmented ones (698/698 frames, PSNR = inf).
Why it matters beyond the env flag: shouldSegmentCapture routes by duration once HF_SEGMENTED_MIN_SECONDS is set, and the source comment plans to flip the default to 600 s (SEGMENTED_MIN_SECONDS_AFTER_SOAK). After that flip, every --format mov render of 10 min or more will fail by default.
- Dominant language
- TypeScript
- Stars
- 54.1k
- Forks
- 4.9k
- Avg merge
- 8h 46m
- Merged PRs (30d)
- 781
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from heygen-com/hyperframes
-
render: --variables-file (and --variables <path>) fails with "io.readFile is not a function" since 0.8.212Possibly taken @miguel-heygen claimed this today. Openbug triage/needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
heygen-com/hyperframes#6830 ·
Maintainers usually reply within 1 day
-
`motionContextToDocs`: `y` track copies `opacity` when a node animates both (key lookup has no word boundary)Possibly taken @Muzzy5150 claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
heygen-com/hyperframes#6756 ·
Maintainers usually reply within 1 day
-
Batch rendering rejects JSON files saved with a byte order markPossibly taken @AksharP5 claimed this 3 days ago. Openbug triage/ready
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
heygen-com/hyperframes#6604 ·
Maintainers usually reply within 1 day
-
Timeline: show a clip's full name when its label is cut offPossibly taken @DanielMcSheehy claimed this 12 days ago. Opendesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
heygen-com/hyperframes#5582 · 2 comments ·
Maintainers usually reply within 1 day
-
Studio: press ? to open the keyboard shortcuts panelPossibly taken @B-Payal claimed this 17 days ago. Opendesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
heygen-com/hyperframes#5580 · 1 comment ·
Maintainers usually reply within 1 day
All issues in heygen-com/hyperframes
Similar issues
-
area:cli bug P4
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
bug from-studio
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
esengine/DeepSeek-Reasonix#14868 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
linxiv-dev/linXiv#384 · 1 comment ·
Maintainers usually reply within 1 day
-
scope:core type:security
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
mailgun/mailgun.js#544 ·