Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Segmented capture always fails with `--format mov`

未关闭 适合新手
#6,481 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript

调研方向

阅读 packages/producer/src/services/render/stages/captureSegmentedStage.ts,重点关注 segmentOutputPath 及其调用方。使用提供的命令和 --format mov 重现问题,然后追踪输出格式如何传递到分段路径。完成标准是分段 MOV 输出使用兼容的分段容器并成功渲染;按照 issue 中的描述,将其与非分段渲染进行比较。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
TypeScript
星标
54.1k
派生
4.9k
平均合并
15 小时 19 分钟
30 天内合并 PR
769

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

heygen-com/hyperframes 的其他 Issue

查看 heygen-com/hyperframes 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。