4.4 KiB
4.4 KiB
视频画布空壳清理与上传修复上线记录 — 2026-09-18
应用提交 a4354dc5,基于发布分支 codex/video-groups-release-0918(3002704d)。
空壳/演示功能清理
对照 liblib.tv 逐项核对后处理。此前已真实的链路(视频生成四通道、视频剪辑/裁剪/抽帧/慢放/音视频分离 ffmpeg、P40 高清、智能剪辑、提示词优化/翻译、故事脚本/视频解析分析、模型选择按能力过滤、历史记录真实画布数据)保持不变,本次处理残余空壳:
- 删除从未渲染的装饰性场景组件(StoryScriptScene / FirstFrameVideoScene / AudioToVideoScene / CharacterThreeViewScene 及其面板),以及 1200+ 行从未挂载的假导演台控制台 DirectorConsole3DDialog(假截图 6.5 秒定时器、假 AI 识图导入、假历史资产、无操作 AI 生成)。真实导演台为 DirectorStudioDialog,不受影响。
- 删除演示假数据常量(DEFAULT_*_HISTORY_NODES、DEMO 素材 URL 常量、PRESET_MEDIA_TOOLBAR_ITEMS)与不可达的“接口待接入”toast 回退;PresetComposerPanel / PromptComposer / AudioToVideoComposerPanel 的 onSubmit 改为必填,全部走真实生成/分析接口。
- 预设 starter 与工具箱模板不再预置“已生成”的假结果节点(此前用演示 OSS 素材冒充生成结果),统一为待生成状态。
- 图片工具动作(高清/扩图/九宫格/打光/全景/下载)在无真实素材时给出明确报错,不再回退演示图片。
- PromptComposer 选项应用后的误导提示“已应用,生成接口待接入”移除(生成接口为真实可用)。
- 保留的诚实降级:人声/背景音分离、视频字幕擦除在无专用模型时明确提示“尚未接通”,不做假结果。
上传两个线上问题修复
- 现象一:智能剪辑“上传视频”报 signal timed out。根因:
/api/canvas/media/upload前端超时仅 120 秒,大素材走慢速存储上传时超时中断。修复:客户端超时提升到 10 分钟(SmartEditDialog / SmartEditNode / 画布 uploadCanvasMediaFile),超时错误改为明确中文提示。 - 现象二:桌面拖拽素材到画布/对话框失败。修复:智能剪辑全屏对话框新增视频拖放区(此前拖到对话框被静默忽略);画布拖放在被对话框拦截、画布加载中、读不到文件时均给出明确 toast,不再静默失败。
- 服务端配套:nginx
ai-chatbot.conf的大文件上传正则块补充canvas/media/upload(client_max_body_size 500M、client_body_timeout 300s、proxy_buffering off、600s 读写超时),备份为 conf.d/ai-chatbot.conf.bak-media-upload-*,nginx -t 通过后 reload。 - 服务器 tsconfig.json exclude 增加
backups,避免历史构建备份目录(backups/next-before-vip98k-0911)参与类型检查导致构建失败;这是服务器本地修改,不入库。
部署与验证
- TypeScript 检查、ultracite lint、本地 webpack 生产构建通过。
- 服务器
git pull --ff-only到a4354dc5;构建候选目录.next-media-fix-a4354dc5-20260918T180045,候选端口 3138 冒烟(首页 200、/video-canvas 200、上传接口 401 登录保护)后切换.next软链并pm2 restart ai-chatbot。 - 切换后:127.0.0.1:3125 首页 200、上传接口 401;公网 HTTPS 首页 200、/video-canvas 307(按未登录规则跳转)、上传接口 401。旧构建
.next-media-audio-fe1c9b60-20260918T151731保留可回滚。
续更:人声/背景音分离接入远程 HTDemucs 服务
- 应用提交
6ed8879b。画布视频工具栏的"人声分离/背景音分离"此前误报"尚未接通",实际私有 FunASR/HTDemucs 音频服务已在生产配置(SMART_EDIT_AUDIO_URL,健康检查 separation: true)。 - 新增
/api/canvas/audio-separate:下载画布素材 → ffprobe 校验 → ffmpeg 抽取 44.1k WAV → 复用 remote-audio 远程分离任务(8 分钟轮询、失败可续查)→ 分离音轨上传存储并回传 URL;并发限制每用户单任务、全局 3 任务。 - 画布工具栏音频分离菜单改为三项:人声分离(仅人声音轨)、背景音分离(仅背景音轨)、音视频分离(音轨+无声视频,逻辑不变)。
- 部署:候选目录
.next-voice-split-6ed8879b-20260918T181658冒烟通过后切换软链并重启 pm2;本地 3125 首页 200、公网 HTTPS 200、路由在登录保护下返回 401(中间件拦截符合预期)。