它要解决什么
生成式视频的常见问题是过程难以复查、局部修改需要整体重跑。TextVideoGen 让用户只负责文稿、传播目的与业务限制,其余交给 Agent;制作流程被拆分为带契约的阶段,每一步的输入输出、版本与审查结论都可追溯。
由 OpenCode 驱动的本地视频生产工作区。用户只需提供文稿、传播目的与业务限制,创意提案、导演、分镜、素材、制作、检查与返修由 Agent 承担,让观众第一次观看就能理解内容;代码、视频项目与运行环境彼此隔离。
TextVideoGen 将本地视频制作拆分为 13 个可审查阶段:文稿、配音、时间对齐、创意提案、导演方案、分镜、素材、逐场景渲染、合成、质检、终审、返修与交付。结构化契约记录每个阶段的输入与输出,变更时仅重做受影响的场景;每个场景还可以按语义选择 HTML/SVG 动画、图片、混合画面或 B-roll。
生成式视频的常见问题是过程难以复查、局部修改需要整体重跑。TextVideoGen 让用户只负责文稿、传播目的与业务限制,其余交给 Agent;制作流程被拆分为带契约的阶段,每一步的输入输出、版本与审查结论都可追溯。
先建立项目契约,再由 Agent 提出 2–3 套可制作的创意方案并推荐其一;随后依次完成配音、时间对齐、导演方案、分镜与场景素材,逐场景渲染后运行技术 QA,人工终审通过才生成交付版本。发生变更时先进行影响分析。
由 OpenCode 调度多阶段任务;配音使用 Voicebox,时间对齐使用 WhisperX,画面渲染基于 HTML / SVG Motion 与 Playwright,合成由 FFmpeg 完成;JSON Schema 与哈希值记录输入输出关系。
v0.1.0 源码发行包已发布,工作区当前支持 macOS Apple Silicon。历史生成产物已在整理时清理,旧项目仅保留原始文稿与清理日志,重新制作从 script 阶段开始。
每个阶段都有明确输入、结构化产物、版本与审查门禁,便于复现每次生成和审查过程。
Node、pnpm、Python、uv、WhisperX、Chromium、FFmpeg 与模型全部进入 .videoenv,不污染全局环境。
项目、分镜、运动检查、返修与提示词由 schemas/ 下的 JSON Schema 与 prompts/ 共同约束。
每次 provider 调用、阶段完成、审查结论和交付记录都会保留版本与输入关系。
先生成影响分析,只重做受变更影响的场景;未变化场景通过哈希验证直接复用。
GPT 负责创意、导演、返修范围与最终门禁;DeepSeek 负责整理、元数据与初检,结果必须复核。
文稿结构化,Voicebox 本地配音。
WhisperX 对齐,Agent 产出创意方案。
导演方案与分镜绑定文本和素材来源。
登记场景素材,逐场景按帧渲染。
单 filter graph 合成,运行技术质检。
人工终审、局部返修与原子化交付。
浏览器逐帧渲染与 FFmpeg 媒体管线协作,既保留前端动画的表达力,也控制视频时序;共享渲染器默认 30 fps,快速运动可切到 60 fps。
分镜绑定字幕、素材清单与视觉签名。
HTML / SVG 场景按帧生成 JPEG 图像流。
image2pipe 直接编码,避免海量临时帧。
单 filter graph 重定时、拼接并混入配音。
校验解码、黑帧、静帧、静音、帧率和音画时长。
早期示例「英语启蒙四关通关总纲」:1080 × 1920、30 fps、18 个场景。该示例的生成产物已在打包整理时清理,项目回到 script 阶段,以下成片帧与核验数据为归档记录。



工作区入口集中在 bin/,安装、建项目、日志、交付与打包各有独立命令。
./bin/setup 把运行时、依赖、浏览器与模型装入 .videoenv;./bin/check-environment 只做检查,不进行模型推理。
./bin/new-project my-video "标题" 建立项目骨架,再用 ./bin/opencode-video 进入 Agent 制作流程。
./bin/video-log 记录阶段事件,./bin/pnpm-video check 汇总类型、隔离环境与 Voicebox 检查。
工作区专注于生产过程,最终成片只在获得批准后移入 macOS Movies 目录。
./bin/deliver-video 不会覆盖同名版本,并写入目标路径、文件大小与 SHA-256 交付记录。
最终视频移出仓库,只留下可提交的交付记录和完整生产溯源。
删除 .videoenv 不影响源码和 projects;重新运行 ./bin/setup 即可恢复固定版本环境。
./bin/package-workspace 生成不含私有项目与运行环境的源码包,v0.1.0 发行包约 22 MB。
包含代码、配置、lockfiles、公共素材与 Skills / 插件源码;排除 Git 元数据、依赖、模型、缓存、日志、凭证与旧项目。
每次打包写入 .videoenv/tmp/packages/release-时间-随机值/,历史包与校验文件不会被覆盖。
随包输出 SHA-256 校验文件;解压到新目录后运行 ./bin/setup 重建固定版本环境。
本地模型、浏览器渲染与媒体处理在统一工作区中协作。