XteVision Producer 是什么,适合谁使用?
XteVision Producer(原 VidPro)是一个 完全离线、自托管的视频制作管理平台,覆盖整个商业视频制作流程——从客户开发到交付——在一个统一系统中完成。不依赖任何外部服务、无需云计算,运行在本地硬件上。
自 v1.8.3(2026-07-25)起,规范中的所有 5 个阶段均已实现。该平台包含 49 个 API 路由、14 个项目标签页、3 种语言、40+ 张数据库表,以及重新设计的玻璃拟态 UI 和可主题化强调色。所有路由均已认证并按工作区隔离。
高层设计与通信流程
┌─────────────────────────────────────────────────────────────────┐
│ Browser (Client) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Next.js 16 (App Router) │ │
│ │ ┌────────┐ ┌──────────┐ ┌────────┐ ┌────────┐ ┌──────┐ │ │
│ │ │ Auth │ │ Dashboard│ │Project │ │ Budget │ │Script│ │ │
│ │ │ │ │ │ │ Detail │ │ │ │ │ │ │
│ │ └────────┘ └──────────┘ └────────┘ └────────┘ └──────┘ │ │
│ │ ┌────────┐ ┌──────────┐ ┌────────┐ ┌────────┐ ┌──────┐ │ │
│ │ │ Shot │ │ Shooting │ │Schedule│ │ Post- │ │Invoice│ │ │
│ │ │ List │ │ Day │ │(Gantt) │ │Prod │ │ │ │ │
│ │ └────────┘ └──────────┘ └────────┘ └────────┘ └──────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
└──────────────────────────────└──────────────────────────────────┘
│ HTTP/REST API
┌──────────────────────────────┴──────────────────────────────────┐
│ Next.js API Routes (Server) │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────────┐ │
│ │ Auth │ │Project │ │ Budget │ │ Script │ │ AI Chat │ │
│ │ Routes │ │ CRUD │ │ Engine │ │ Editor │ │ + Tool Calls │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └──────────────┘ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────────┐ │
│ │Export │ │Upload │ │Currency│ │ DB │ │ Settings │ │
│ │(XLSX) │ │(files) │ │(API) │ │ (pg) │ │ │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └──────────────┘ │
└──────────────────────────────└──────────────────────────────────┘
│
┌──────────┴──────────┐
│ PostgreSQL 18.4 │
│ xtevision_producer │
│ 40+ tables, 14 enums │
└─────────────────────┘pg(Node.js 驱动)使用原始 SQL 查询——参数化、按工作区范围XteVision Producer 专为 自托管、完全离线运行设计:
xtevision_producer前端、后端和基础设施技术
| 技术 | 版本 | 用途 |
|---|---|---|
| Next.js | 16(App Router) | React 框架、SSR/SSG、API 路由 |
| Tailwind CSS | v4 | 工具优先的样式 |
| TypeScript | 5.9 | 类型安全 |
| Lucide React | - | 图标库 |
| next-intl | v4 | 国际化(EN/DE/ZH) |
| SheetJS (xlsx) | 0.18.5 | 工作区导出/导入 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Next.js API 路由 | 16 | REST API 服务器 |
| PostgreSQL | 18.4 | 主数据库 |
| pg | latest | Node.js PostgreSQL 驱动 |
| Bcrypt / crypto.scrypt | - | 密码哈希 |
| 服务器 | 任意系统 | Node.js ≥ 20,PostgreSQL ≥ 14 |
| 构建 | 独立部署 | 自包含的 Node.js 服务器 |
pg 驱动(无原生二进制文件),因此可在任何平台上运行。列名保持 camelCase(在 SQL 中使用引号标识符)。在您的服务器上运行 XteVision Producer
解压包、运行一条命令完成设置、然后启动应用。设置脚本会创建数据库、应用架构、生成安全的 AUTH_SECRET,并自动写入 .env。
# 1. 解压包
mkdir -p /opt/xtevision
cd /opt/xtevision
tar zxvf xtevision-producer-build.tar.gz -C deploy/
cd deploy
# 2. 一条命令完成设置(创建数据库、应用架构、写入 .env)
./setup.sh
# 3. 启动应用
sudo npm install -g pm2
pm2 start server.js --name xtevision-producer
pm2 save
pm2 startup # 按照打印出的指示在启动时自动启动
您可以通过环境变量自定义设置,例如
DB_NAME=myproducer DB_PASS=mysecret APP_PORT=8080 ./setup.sh。
http://your-server-ip:3000
应用默认运行在 3000 端口。如需使用其他端口,可在运行设置时设置
APP_PORT,或编辑 .env 中的 PORT 然后重启。
包中包含 Example_Workspace.xlsx——一个现成的演示
工作区,包含 3 个虚构客户和一个完整项目(简报、预算、剧本、镜头列表、
拍摄日、里程碑、任务、发票、后期制作、交付),以及示例器材、演员、
场地、剧组和供应商。
要导入它并查看 Total Recall 功能的演示,请打开
设置 → 工作区 → 导入,选择 Example_Workspace.xlsx,
然后确认。导入会自动重映射所有 ID,因此演示数据完全自包含,可安全导入
到任何工作区。探索它,然后编辑或删除演示条目,让工作区成为您自己的。
目录布局和模块组织
XteVision-Producer/ ├── src/ │ ├── app/ │ │ ├── [locale]/ │ │ │ ├── (main)/ # 已认证页面 │ │ │ │ ├── dashboard/ # 仪表盘统计 + 快速操作 │ │ │ │ ├── projects/ # 项目列表 + 详情(14 个标签页) │ │ │ │ ├── clients/ # 客户 CRM │ │ │ │ ├── invoices/ # 发票 CRUD + 详情/打印 │ │ │ │ ├── crew/ # 剧组名单 │ │ │ │ ├── vendors/ # 供应商管理 │ │ │ │ ├── casting/ # 演员 + 场地 │ │ │ │ ├── inventory/ # 工作室 & 器材 │ │ │ │ ├── calendar/ # 全局日历 │ │ │ │ └── settings/ # 公司、团队、个人资料 │ │ │ └── (auth)/ # 登录、注册 │ │ └── api/ # 49 个 API 路由文件 │ ├── components/ # 共享 UI 组件 │ │ ├── ui/ # 按钮、输入、分页等 │ │ ├── projects/ # 项目标签页(14 个功能模块) │ │ ├── layout/ # 侧边栏、顶栏 │ │ ├── ai/ # 聊天 wizard FAB + 模态框 │ │ ├── budget/ # 预算明细项 │ │ ├── calendar/ # 日历组件 │ │ └── production/ # 制作日志组件 │ ├── lib/ # 共享库 │ │ ├── db.ts # pg 查询助手 │ │ ├── auth.ts # 会话管理 │ │ ├── currency.ts # 货币转换 + 格式化 │ │ ├── workspace-export.ts # XLSX 导出构建器 │ │ └── workspace-import.ts # XLSX 导入解析器 │ ├── i18n/ # next-intl 路由配置 │ └── messages/ # en.json、de.json、zh.json ├── migrations/ # SQL 迁移(001–013) ├── schema.sql # 完整 PostgreSQL 架构 ├── public/ # 静态资源、上传、图标 └── deploy/ # 解压缩的独立构建版本
| # | 标签页 | 描述 |
|---|---|---|
| 1 | 简报 | 项目收集表单:目标、受众、基调、KPI、品牌指南 |
| 2 | 预算 | 明细项网格,含 11 个类别、应急预算百分比、多货币转换 |
| 3 | 剧本 | 基于场景的剧本编辑器,带元数据提取 |
| 4 | 镜头列表 | 12 种镜头类型、13 种运镜、11 个镜头、从脚本自动生成 |
| 5 | 分镜 | 视觉网格,支持图片上传、拖拽排序、节奏时间轴 |
| 6 | 拍摄日 | 多日计划,含剧组排班、设备预约、依赖关系 |
| 7 | 通告单 | 基于拍摄日数据可打印的剧组/场地/设备汇总 |
| 8 | 日历 | 项目级月度视图,多日拍摄跨越所有天数 |
| 9 | 时间表 | 基于真实数据的交互式甘特图,支持拖拽调整大小、依赖箭头 |
| 10 | 制作日志 | 每日报告、摄像机日志(A–D)、DIT 校验和、连续性备注 |
| 11 | 后期制作 | 剪辑/调色/音效/特效流程、审核周期、画面锁定 |
| 12 | 交付 | 母带规格、平台优化、质量检查、归档 |
| 13 | 里程碑与任务 | 截止日期、阶段、依赖关系、优先级、完成计数器 |
| 14 | 沟通 | 按客户分类的邮件/电话/会议/备注条目,限定于项目 |
端到端覆盖的五个制作阶段
每个项目的规划和创意基础。
| 子步骤 | 功能 |
|---|---|
| 客户开发与需求沟通 | 结构化收集表单:目标、受众、基调、KPI、品牌指南 |
| 创意概念与剧本 | 基于场景的剧本编辑器,带元数据提取;自动生成镜头列表 |
| 预算与时间线 | 交互式预算引擎,含明细项分解、应急预算百分比、多货币 |
| 选角与场地勘察 | 演员档案含费率、场地数据库含许可证和保险 |
| 分镜制作 | 视觉镜头列表构建器,支持图片上传、运镜标注、节奏时间轴 |
| 剧组与供应商组建 | 含 19 个岗位的剧组名单、供应商管理、合同存储 |
| 排期 | 通告单生成、多日拍摄计划、天气数据、依赖跟踪 |
拍摄期间的执行和现场管理。
| 子步骤 | 功能 |
|---|---|
| 现场/场地准备 | 勘察清单、许可证跟踪、电力/Wi-Fi/安全验证 |
| 制作日志 | 每日报告、摄像机日志(多机位 A–D)、DIT 校验和、连续性备注 |
| 现场指导 | 导演/第一 AD/场记的岗位分配和任务跟踪 |
| 拍摄管理 | 摄像机日志、灯光/音频设置文档、花絮镜头跟踪、补拍 |
| 演员管理 | 指导备注、连续性跟踪、到场时间、服装/道具 |
| DIT 与每日备份 | 存储卡卸载日志、校验和验证、每日样片跟踪 |
| 收工与盘点 | 设备归还跟踪、场地恢复确认、资产日志 |
编辑、润色和客户审批流程。
| 子步骤 | 功能 |
|---|---|
| 后期制作跟踪 | 剪辑/调色/音效/特效流程,含部门备注和状态概览 |
| 剪辑流程 | 未开始 → 粗剪 → 精确剪辑 → 画面锁定,带锁定/解锁时间戳 |
| 调色 | 创意调色备注、曝光修正日志、品牌一致性清单 |
| 音效设计与混音 | Foley/环境音/ADR 跟踪、音乐授权、最终混音规格 |
| 特效 / 动态图形 | 合成/字幕/下三分之一/动画任务跟踪 |
| 客户审核周期 | 放映含反馈跟踪、修订轮次、审批状态 |
| 最终母带 | 编解码器/分辨率/帧率/响度标准配置 |
平台就绪的输出和长期归档。
| 子步骤 | 功能 |
|---|---|
| 平台优化 | 多选宽高比(16:9、9:16、1:1、影院),字幕语言 |
| 质量检查 | QC 通过/失败切换、交付日期跟踪、格式验证 |
| 交付跟踪 | 编解码器、分辨率、帧率、响度标准(-24 LUFS)选择 |
| 归档与存储 | 归档路径、交付说明、保留政策跟踪 |
保持流程透明并全程跟踪进度。
| 子步骤 | 功能 |
|---|---|
| 客户 CRM | 流程阶段(LEAD→ACTIVE)、联系信息、沟通历史 |
| 里程碑跟踪 | 截止日期、状态(待处理/进行中/已完成/已阻塞)、阶段分配 |
| 任务管理 | 标题、状态、优先级(低→紧急)、负责人、依赖跟踪 |
| 沟通记录 | 按客户分类的邮件/电话/会议/备注条目,限定于项目 |
| 法律授权书 | 5 种授权类型、现在签署带时间戳 + 文档哈希、审计轨迹 |
| 发票 | 估算/定金/进度款/最终款、明细项、税费、状态工作流 |
| 设置 | 公司资料、团队管理、工作区成员 + 角色 |
平台关键能力
简报、预算、剧本、镜头列表、分镜、拍摄日、通告单、日历、时间表、制作日志、后期制作、交付、里程碑与任务、沟通。
11 个明细项类别,含应急预算百分比、预算与实际对比、通过实时 Frankfurter API 汇率进行多货币转换。支持 9 种货币。
基于真实数据的甘特图,从拍摄日、里程碑和任务表拉取数据。支持拖拽移动/调整大小、正交依赖箭头、月/周/天缩放、localStorage 优先持久化。
基于拍摄日数据可打印的通告单(按到场时间排序的剧组、场地、设备)。发票打印布局隐藏侧边栏/顶栏,用于 A4 输出。
带地理编码的实时 Open-Meteo 集成。拍摄日每日预报(温度、状况、日出/日落)。多日拍摄的每日天气数据。本地化格式(EN °F,DE/ZH °C)。每个拍摄日都有"获取天气"按钮。
可拖拽/可调整大小的模态框带浮动聊天按钮。可配置后端(MLX、LM Studio、Ollama、Copilot、OpenRouter)。通过工具调用执行数据库查询。
English、Deutsch、中文——每种语言 500+ 翻译键。完整的 UI 翻译,包括通过位置匹配数组在前端翻译的 DB 任务名称。
完整工作区导出为 Excel(.xlsx),含 34 张表,按 FK-safe 顺序排列。导入使用新的 UUID 重建所有记录,并通过 ID 重映射保持关系。
汇总所有项目的拍摄日和里程碑。按项目着色。多日事件跨越所有天数。可点击的事件导航到项目标签页。
所有 49 个 API 路由均已认证 + 按工作区范围。安全审计通过。基于会话的认证,使用 crypto.scrypt 密码和签名 cookie。
深入功能文档
使用 crypto.scrypt 进行密码哈希和签名会话 cookie 的自定义基于会话的认证。每个用户属于一个带有 RBAC 角色(管理员、制片人、剧组、客户查看者、会计)的工作区。
workspaceId 过滤包含关键指标和快速操作的概览页面:
完整的客户关系管理,含流程阶段:
交互式预算编制,含全面的财务控制:
基于场景的剧本管理:
全面的镜头规划,含行业标准选项:
带图片上传的视觉镜头规划:
带完整资源管理的多日制作计划:
基于拍摄日数据生成的可打印制作文档:
用于制作时间线管理的两个互补视图:
现场文档,含 4 个子章节:
端到端的后期制作流程:
最终输出规范和分发:
带依赖跟踪的项目管理:
带数据库查询的可配置 AI 助手
在所有页面上可用的浮动 AI 助手:
AI 向导可以直接查询工作区 PostgreSQL 数据库:
tools/tool_calls 协议workspaceId 作为参数AI 向导可以通过 Open-Meteo API 获取实时天气预报:
| 后端 | 默认 URL | 端口 | 备注 |
|---|---|---|---|
| MLX | your-ai-server-ip | 5010 | Apple Silicon,最佳隐私 |
| LM Studio | your-ai-server-ip | 1234 | 本地 GGUF 模型 |
| Ollama | your-ai-server-ip | 11434 | 流行的本地模型 |
| Copilot | your-ai-server-ip | 5015 | GitHub Copilot 桥接 |
| OpenRouter | openrouter.ai | 443 | 第三方网关 |
在您的服务器上运行和管理平台
sudo npm install -g pm2cd /opt/xtevision/deploy
pm2 start server.js --name xtevision-producer
pm2 save
pm2 startup # 按照打印出的指示在启动时自动启动
不使用 pm2,可直接运行 ./start.sh,或用
nohup ./start.sh > app.log 2>&1 & 在后台保持运行。
| 变量 | 值 | 描述 |
|---|---|---|
DATABASE_URL | postgresql://producer:<password>@localhost:5432/xtevision_producer?schema=public | PostgreSQL 连接(专用 producer 用户) |
PORT | 3000 | 服务器端口 |
HOSTNAME | 0.0.0.0 | 监听所有接口 |
AUTH_SECRET | 64 位十六进制 | 会话签名密钥(由 setup 自动生成) |
NEXT_PUBLIC_APP_NAME | XteVision Producer | 应用名称 |
NEXT_PUBLIC_DEFAULT_LOCALE | en | 默认语言 |
这些由 setup.sh 自动写入 .env。编辑
.env 以更改它们,然后重启应用。
pm2 stop xtevision-producer
cp .env /tmp/xv-env.bak
cp -r uploads /tmp/xv-uploads.bak
rm -fr deploy && mkdir deploy
tar zxvf xtevision-producer-build.tar.gz -C deploy/
cp /tmp/xv-env.bak deploy/.env
cp -r /tmp/xv-uploads.bak deploy/uploads
pm2 start xtevision-producer
然后应用包中包含的任何新的数据库迁移:
cd deploy
for f in migrations/*.sql; do
echo "Applying $f"
psql "$(grep DATABASE_URL .env | cut -d'=' -f2- | tr -d '"')" -f "$f"
done
完整的 REST API 端点清单
所有 49 个 API 路由均已认证并按工作区范围。每个路由都调用 requireAuth() 并按 workspaceId 过滤查询。
| 类别 | 路由 | 方法 |
|---|---|---|
| 认证 | /api/auth/login、/register、/logout、/me、/workspace | POST、GET |
| 仪表盘 | /api/dashboard/stats | GET |
| 项目 | /api/projects、/api/projects/[id] | GET、POST、PUT、DELETE |
| 客户 | /api/clients、/api/clients/[id] | GET、POST、PUT、DELETE |
| 预算 | /api/projects/[id]/budget | GET、PUT |
| 剧本 | /api/projects/[id]/scenes、.../[sceneId] | GET、POST、PUT、DELETE |
| 镜头列表 | /api/projects/[id]/shots | GET、PUT |
| 分镜 | /api/projects/[id]/storyboard、.../storyboard-upload | GET、PUT、POST |
| 拍摄日 | /api/projects/[id]/shooting-days | GET、PUT |
| 通告单 | /api/projects/[id]/call-sheet | GET |
| 日历 | /api/projects/[id]/calendar、/api/calendar/global | GET |
| 时间表 | /api/projects/[id]/gantt | GET、PATCH |
| 制作日志 | /api/projects/[id]/production-log | GET、PUT |
| 后期制作 | /api/projects/[id]/post-production | GET、PUT |
| 交付 | /api/projects/[id]/delivery | GET、PUT |
| 里程碑 | /api/projects/[id]/milestones | GET、PUT |
| 任务 | /api/projects/[id]/tasks | GET、PUT |
| 沟通 | /api/projects/[id]/communication | GET、PUT |
| 法律授权书 | /api/projects/[id]/legal-releases | GET、PUT |
| 发票 | /api/invoices、/api/invoices/[id] | GET、POST、PUT、DELETE |
| 剧组 | /api/crew | GET、POST、PUT、DELETE |
| 供应商 | /api/vendors | GET、POST、PUT、DELETE |
| 选角/演员 | /api/casting/talent | GET、POST、PUT、DELETE |
| 场地 | /api/casting/locations | GET、POST、PUT、DELETE |
| 库存 | /api/inventory、/api/inventory/[id] | GET、POST、PUT、DELETE |
| 设备预约 | /api/projects/[id]/equipment-booking | GET、PUT |
| 设置 | /api/settings、/api/settings/team | GET、PUT |
| AI 聊天 | /api/ai/chat | GET、POST |
| 天气预报 | /api/weather/forecast?location=...&startDate=...&endDate=... | GET |
| 货币 | /api/currency/rates | GET |
| 上传 | /api/uploads/[...path] | GET |
| 工作区 | /api/workspaces/[id]、/api/workspaces/[id]/export | GET、PUT、DELETE |
| 工作区导入 | /api/workspaces/import | POST |
版本历史和发布说明
weatherData JSONB 列中存储每日预报(迁移 024)。日历现在为每个独立日期显示正确的天气,而不仅是第一天的数据。get_weather_forecast 工具获取实时天气预报。带地理编码和本地化格式及来源标注。public/XteVision_Producer_Manual.html 提供。postgres 迁移到专用的 producer 角色(迁移 023)。docs/overview.md 和 docs/how-to.md 中添加天气预报和 AI 天气工具调用。xlsx(SheetJS)——纯 JS、架构无关GET /api/workspaces/[id]/export、POST /api/workspaces/importsrc/lib/currency.ts。仅显示转换——保留原始值。GET /api/currency/rates,带 6 小时服务端缓存query_database 工具查询 PostgreSQL。仅 SELECT、200 行限制、10 秒超时、完整 DB 架构感知、工作区隔离。dependsOn。pg(原始 SQL)。基于会话的认证,使用 crypto.scrypt。vidpro-spec.md,覆盖全部 5 个制作阶段。常见问题及解决方案
EADDRINUSE 错误kill $(lsof -ti:3000)(使用您的端口)终止现有进程,或在 .env 中更改 PORT。systemctl status postgresql。检查 .env 中的 DATABASE_URL。确保 xtevision_producer 数据库存在。重新运行 ./setup.sh 以修复角色/数据库。Command 'pm2' not foundsudo npm install -g pm2 安装。如果 npm 不可用,直接使用 ./start.sh 或 nohup ./start.sh > app.log 2>&1 & 运行应用。uploads/<projectId>/ 目录存在并具有写权限。检查上传 API 路由是否正常工作。