Render compositions to MP4 with npx hyperframes render.
Uses Puppeteer (bundled Chromium) + system FFmpeg. Fast for iteration.
Requires: FFmpeg installed (brew install ffmpeg or apt install ffmpeg).
Deterministic output with exact Chrome version and fonts. For production. Requires: Docker installed and running.
-f, --fps— 24, 30, or 60 (default: 30)-q, --quality— draft, standard, high (default: standard)-w, --workers— Parallel workers 1-8 (default: auto)--crf— Override encoder CRF (mutually exclusive with--video-bitrate)--video-bitrate— Target video bitrate such as10M(mutually exclusive with--crf)--vp9-cpu-used— WebM VP9 speed/quality tradeoff (-8to8, default:4). Higher values encode faster with larger output / quality tradeoff.--video-frame-format— Source video frame extraction format:auto,jpg, orpng(default:auto). Usepngfor UI recordings, screen captures, and color-sensitive source videos.--gpu— Use GPU encoding (NVENC, VideoToolbox, AMF, VAAPI, QSV)--browser-gpu/--no-browser-gpu— Force host GPU or software (SwiftShader) for Chrome/WebGL capture. Default for local renders isauto— probe WebGL availability on first launch and fall back to software if no GPU is reachable. Docker mode always uses software.-o, --output— Custom output path
- Use
draftquality for fast previews during development - Local renders auto-detect GPU on first launch; use
--browser-gputo force hardware (errors if no GPU) or--no-browser-gputo force SwiftShader - Use
--gpuwhen a local render also benefits from hardware FFmpeg encoding - Use
--video-frame-format pngwhen source videos contain saturated UI colors that should avoid JPEG extraction - Use
npx hyperframes benchmarkto find optimal settings - 4 workers is usually the sweet spot for most compositions