从一段值得记录的内容,到一条有出处的视频。
C2Video 是我持续迭代的内容转视频项目,源码现已在 GitHub 公开。输入主题,或导入有权使用的知乎素材,便可以在一个工作台里完成选题、口播、配音、字幕和竖屏视频制作,把分散的步骤串成可以检查、暂停与继续的流程。
可以直接浏览 GitHub 源码与使用文档,无需申请仓库访问权限。源码公开不等于生成服务已部署:本页目前是项目介绍与历史界面演示,不是在线生成服务,不会调用模型或产生费用。
从素材到发布包
在默认的人工监督模式下,一次制作经历以下步骤:
- 准备素材:通过知乎官方搜索、热榜,或人工导入内容,并保留原文链接、已提供的作者信息和取得方式。
- 选题与审核:筛选内容,由人确认选题组合,再进入制作。
- 组织表达:生成内容卡片和中文口播,完成配音与字幕。
- 渲染与质检:输出 1080 × 1920 竖屏视频,检查音轨、画幅、黑帧和音量等实际媒体指标。
- 成片审核:确认结果后,取得包含视频、封面、文案与出处的发布包。
它只生成发布包,不会自动上传到社交平台。人工审核负责判断事实、表达与素材使用权,媒体检查不能代替这些判断。
界面演示
以下是真实工作台的历史测试截图,记录于 2026 年 9 月 15 日(v0.3)。当前工程版本为 v0.4;截图中的任务、模型响应、Token 和费用估算均为测试数据,不代表真实业务用量或供应商账单。
平台运行
将执行服务、持久队列与访问保护放在同一视图,能够看见任务是在等待、运行,还是停在人工审核节点。

用量看板
按请求记录模型用量与耗时,分别展示供应商返回费用和按配置价格计算的估算。未知数据保持未知,不用零补齐,也不把估算当成账单。

技术栈与分工
| 层次 | 技术 | 负责的事情 |
|---|---|---|
| 工作台 | React、TypeScript、Vite | 任务管理、审核、记忆与用量展示,适配电脑和手机 |
| 接口 | Python、FastAPI | 会话验证、任务接口与执行事件 |
| 执行 | 独立 Worker、SQLite 持久队列 | 有界并发、暂停、取消、超时与任务状态保存 |
| 媒体 | Playwright、Chromium、FFmpeg | 内容卡片、字幕、视频合成与媒体检测 |
| 配音与模型 | Edge TTS、可配置的模型 API | 配音,以及按需启用的模型选题与口播处理 |
| 部署 | Docker Compose、GitHub Actions | API 与 Worker 分开运行,构建和回归检查 |
默认不接模型时,选题和口播采用本地规则筛选与摘录,不等于大模型改写。知乎、模型和语音服务各自有独立的配置与使用边界。
我在这个项目里关注什么
相比“点一下就生成”,我更关心一次制作能不能被理解、被中断,以及在失败后找到问题。
- 执行可靠性:执行请求写入持久队列,API 不承担长时间渲染;Worker 管理自己启动的进程,避免一次请求断开就失去任务状态。
- 真实的人工审核:选题和成片审核是流程的一部分,而不只是界面上的状态标签。
- 来源与偏好可追溯:素材保留出处;反馈可以经模型整理为有来源、可停用的创作偏好。
- 可运维性:提供受保护的运行指标、备份校验与恢复流程,保留失败证据。
当前进度与边界
v0.4 已完成单机容器部署能力和本地验收。项目记录了后端、前端、权限、队列恢复、媒体检查与备份恢复测试;这些记录证明对应测试条件下的行为,不代表真实外部服务或公网环境已经验收。
目前面向个人或受信小团队的共享工作空间,不提供多租户隔离、分布式高可用或模型费用硬限额。源码可以公开阅读,但实际工作台仍需访问保护;不能把内部只读账号当作面向所有游客的演示权限。
希望自行运行,可以参考仓库中的 容器部署与本机体验 和 安全边界。真实视频生成需要独立运行环境、持久存储与 Worker;正式开放前还需完成 HTTPS 和真实服务的小样本验收。
项目来源
C2Video 基于 asashiki/X2Video 演进。在原有内容转视频能力上持续调整数据来源,并完善工作台、持久执行、审核、运行监控与部署流程;上游贡献不重新署名为个人原创。
公开仓库提供源码、使用文档与测试记录;项目来源与历史见 NOTICE。源码公开不代表第三方素材、模型或配音服务可无条件使用;复用、修改或分发前,请分别确认仓库的许可说明、上游授权和所用素材的使用条件。