用途:framefields-render 用于在 Node.js 环境无头渲染、检查、测试和导出基于 framefields 的视频与帧网格,不启动浏览器、Puppeteer 或 Chromium。安装或项目初始化需先按 framefields 技能完成,所有导入来自 framefields 包。
主要能力:提供五步验证流程。第一步做 TypeScript 类型检查与严格 schema 校验,使用 CompositorProgramSchema.safeParse 和 comp.lint(),并运行 npx tsc --noEmit -p .。第二步用 comp.renderFrame 渲染单个关键帧为 PNG 检查画面。第三步用 comp.renderFrameGrid 生成连续帧网格接触表,检查缓动、文本换行和图层层级。第四步在 vitest 中做像素、透明度和布局的自动化断言。第四点五步用 startPreview 启动本地预览,含时间轴、波形与逐帧步进,浏览器实时用 WebGPU 渲染,支持通过 URL 定位时刻和页面内 window.framefieldsPreview API 控制,以及用户在画面上留注释反馈。第五步用 comp.renderVideo 导出 MP4/WebM,可配置质量、编解码器、音频编解码器和并发数,并应调用 result.cleanup()。
内置 QA:renderVideo({ qa }) 在编码时检测,返回结构化 result.qa,包含帧缺失、黑帧、音频削波、响度偏差、动画截断、冻结、静音、无效渐变、不支持图片格式、未知颜色、低对比文本、离屏图层、阴影限制、PBR 无环境、静态轨道等问题;passed 在任何 error 或 warning 时为 false。
使用方式:CLI 可通过 tsx src/render.ts frames 0 18 36 72 渲染关键帧,tsx src/render.ts preview 启动预览,tsx src/render.ts 导出完整视频。也可用 ffprobe/ffmpeg 检查成品文件。
限制与注意:渲染资源密集且异步运行在 worker 池中,需按验证流程先查中间产物再导出。vision 效果依赖前一帧,单帧渲染可能无输出;应使用连续帧或导出的视频验证。脚本结束需显式 process.exit(0) 防止原生线程挂起。预览需支持 WebGPU 的浏览器,注释保存在 .framefields/preview-notes/。文中未提供定价、平台或效果数据。