Repository navigation
feat(cli): render --prores-profile picks ProRes 4444, hq, 422, lt or proxy for MOV - #6581
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
There was a problem hiding this comment.
Verdict: REQUEST CHANGES · 1 blocker · 0 important · 0 nits · head 60b56dd1
Blocker: Comments fails (run 40552251160). RAISED comment share: packages/producer/src/services/render/stages/freezePlan.ts is 22.8% (99/434), at the base 22.7% (98/431). The new /** Set only when a MOV plan uses a non-default ProRes profile; … */ on LockedRenderConfig.proresProfile (freezePlan.ts:57) is the line that pushes it up. Cut that line, or move its meaning into the type or name. The plan.ts:976 comment already says why 4444 is omitted.
Scope
I read the whole non-test diff. One table drives every preset site: the local getEncoderPreset, distributed resolveNonMp4EncoderTriple, and renderChunk. The locked plan carries the profile only when it isn't 4444, so existing plan hashes stay the same, and an unset profile falls back to 4444 on the worker. Validation goes through validateDeliveryEncoderConfig on the local path (job.config) and the distributed path, and lambda render and render-batch get the flag through parseDeliveryFlags. requiresEvenDimensions covers only 4:2:0, which matches the 641×361 hq result. The only remaining hard-coded 4444 sites are background-removal and check-ffmpeg.sh, and both should stay 4444. CI and regression were still running when I posted. No prior reviews.
There was a problem hiding this comment.
Verdict: REQUEST CHANGES · 1 blocker · 0 important · 0 nits · head b7d0a8e1
The Comments check is fixed. The 60b56dd1 → b7d0a8e1 delta is just the removed freezePlan.ts line, and Comments is green.
Blocker: required Typecheck fails (CI run 40554893538, job 122369568107). Typecheck on the previous head never finished because that run was cancelled, so this is the first head where it ran.
src/commands/render/plan.test.ts(175,58): error TS2353: ... '"prores-profile"' does not exist in type 'RenderCommandArgs'.
src/commands/render/plan.test.ts(178,58): same
RenderCommandArgs (cli/src/commands/render/plan.ts:70) declares "keyframe-interval", "max-bitrate" and "buffer-size" but not the new flag. The CLI still works at runtime, because citty passes the arg and parseDeliveryFlags reads it. Add "prores-profile"?: string; after "buffer-size"?: string; (plan.ts:90).
Edit accuracy: accurate 271 (base branch 271), smooth 144 of thoseThe gate passes. Quarantined, measured but not gated (0) Unstable (1)
|
There was a problem hiding this comment.
Verdict: APPROVE · 0 blocker · 0 important · 0 nits · b7d0a8e1 → 8b425516
✅ Typecheck is fixed: "prores-profile"?: string is now in RenderCommandArgs, and that one line is the whole delta. CI, regression and Windows render are all green on this head.
What changed
hyperframes render --format mov --prores-profile <4444|hq|422|lt|proxy>.4444is the default and unchanged (ProRes 4444,yuva444p10le, alpha).hq,422,ltandproxyuseprores_ks -profile:v 3/2/1/0withyuv422p10leand no alpha.PRORES_PROFILESin the engine, owns-profile:v, pixel format and whether the profile has alpha.getEncoderPresettakes the profile, and the distributed plan now asks it instead of hard-coding 4444.RenderConfig.proresProfile, the render request (proresProfile), the Docker run args,lambda renderand the distributed plan. A plan with a non-default profile locks it inmeta/encoder.json, so chunk workers rebuild the same preset. A 4444 plan is byte-identical to before (no new key).4444, hq, 422, lt, proxy), and so is--prores-profileon any format but mov. One validator,validateDeliveryEncoderConfig, for the local and the distributed path.ProRes hq has no alpha channel: transparent areas render black.The CLI cannot know before capture whether a film is transparent, so it prints for every 422-family render.What I measured
ffprobeof each file: default and4444giveprores 4444 yuva444p12le;hqgivesHQ yuv422p10le;422givesStandard yuv422p10le;ltgivesLT yuv422p10le;proxygivesProxy yuv422p10le. A transparent corner pixel in thehqfile reads rgb 0,0,0. A 641x361hqrender succeeds (HQ 641x361 yuv422p10le).--format mp4 --prores-profile hqand--prores-profile 422hqboth exit with a usage error naming the list.chunkEncoder.tsfrom main the four newmaps ProRes profile ... to -profile:vtests fail (4 failed, 105 passed).What I did NOT exercise