* docs: align render, fps and transcribe docs with the CLI - docs/guides/rendering.mdx: default render quality is `looks` (CRF 16), not `standard`. - docs/packages/cli.mdx, render --help (render.ts): default --output is the timestamped `renders/<project>_<YYYY-MM-DD>_<HH-MM-SS>.<ext>`. - skills/hyperframes-cli/references/preview-render.md: local --fps accepts 1-240 or a rational and defaults to the root data-fps, else 30; only lambda and cloudrun are limited to 24, 30, 60. - skills/hyperframes-cli/references/lint-validate-inspect.md: snapshot --range is documented as START,END like every other reference. - skills/media-use/references/audio.md, skills/media-use/audio/references/ transcribe.md, skills/hyperframes/references/captions.md: name the entry point for each transcription default (transcribe.mjs prefers Parakeet; `hyperframes transcribe` uses Parakeet when installed, else the small.en whisper model). - transcribe --model help text and docs/packages/cli.mdx: list `small` and `medium`, which the CLI already accepts. - skills-manifest.json: regenerated hashes for the three skills touched. — Jerrai * docs: lambda and cloud run also accept 25 fps Distributed renders accept 24, 25, 30 and 60 fps (DISTRIBUTED_FPS in packages/core/src/distributedFps.ts). - skills/hyperframes-cli/references/preview-render.md: the --fps note lists 24, 25, 30, 60 for lambda and cloudrun. - skills/hyperframes-cli/references/lambda.md, cloudrun.md: --fps lists include 25. - packages/cli/src/docs/rendering.md (`hyperframes docs rendering`): --fps said 24, 30 or 60 and --quality defaulted to standard; local render takes 1-240 or a rational, default root data-fps else 30, and the default quality is looks. - skills-manifest.json: regenerated hyperframes-cli hash. — Jerrai * chore(skills): regenerate skills manifest after formatting The format hook rewrote skill markdown after the manifest hook had hashed it, leaving the hyperframes-cli hash stale. — Jerrai
3.5 KiB
Cloud Run rendering on Google Cloud
Use hyperframes cloudrun only when the user explicitly wants self-managed Google Cloud infrastructure. It deploys Cloud Run, Workflows, and Cloud Storage. For a managed default use hyperframes cloud; for AWS use hyperframes lambda.
Prerequisites
gcloudis authenticated and the target project has billing enabled.- Terraform 1.5 or newer is on
PATH. - Docker or permission to use Cloud Build is available.
Lifecycle
npx hyperframes cloudrun deploy --project <gcp-project> --region us-central1
npx hyperframes cloudrun sites create ./project
npx hyperframes cloudrun render ./project --width 1920 --height 1080 --wait
npx hyperframes cloudrun progress <execution-name>
npx hyperframes cloudrun destroy --project <gcp-project>
deploy enables the required Google APIs, builds or accepts a container image, applies the bundled Terraform module, and stores the resulting coordinates in ~/.hyperframes/cloudrun-state.json. Use deploy flags such as --image, --repo, --cpu, --memory, --max-instances, and --timeout only when the infrastructure needs those overrides.
sites create uploads a content-addressed project archive for reuse by render-batch; pass its --site-id to that command to skip the batch upload. Single cloudrun render currently resolves the project from its directory and does not consume --site-id. Both render commands require --width and --height; supported output formats are mp4, mov, png-sequence, and webm. Use --output-resolution 4k to supersample an authored composition without changing its layout dimensions.
Common render flags are --fps 24|25|30|60, --quality draft|standard|high, --codec h264|h265 for MP4, --chunk-size, --max-parallel-chunks, --target-chunk-frames, --render-id, --output-key, --wait, and --wait-interval-ms. Use --json for machine-readable output.
For a variable-driven single render:
npx hyperframes cloudrun render ./template \
--width 1920 --height 1080 \
--variables-file ./alice.json \
--strict-variables \
--wait
Use exactly one of --variables and --variables-file. Read Variables for the composition-side contract.
JSONL batches
npx hyperframes cloudrun render-batch ./template \
--batch ./users.jsonl \
--width 1920 --height 1080 \
--max-concurrent 10 \
--site-id <site-id> \
--json
Each nonblank line must contain an outputKey; variables is optional:
{ "outputKey": "renders/alice.mp4", "variables": { "name": "Alice" } }
--max-concurrentdefaults to50and limits in-flight executions.--max-parallel-chunksseparately limits chunks inside one render.--dry-runparses the file and printswould-startrows without starting executions.- The template uploads once unless
--site-idis supplied. - Per-entry start errors remain visible and make the command exit nonzero.
- Do not rely on
--strict-variablesforcloudrun render-batch: the current command accepts the flag but does not validate batch rows. Validate the JSONL variable objects against the composition schema before dispatch. The strict gate does work for singlecloudrun render.
render without --wait returns an execution name. Use cloudrun progress <execution-name> until it succeeds, then verify the reported GCS output. destroy removes the Terraform-managed stack and its scratch bucket; preserve any deliverables that must outlive the stack.