用途与实际影响
这项功能怎样使用
为什么需要它
静态看 SVG 很难判断动画节奏,单元测试也看不出信息层级是否舒服;反过来,直接渲染完整视频又太慢。构建、浏览器布局检查和动态预览形成一个低成本人工关口。
举个实际例子
我可以说:“先把 12 个场景都放到预览页;任何标题越界或关键词踩点缺失都别渲染。”系统会先交回集中预览和问题清单,长渲染仍等待确认。
最后我会得到什么
得到集中查看的场景预览和问题清单。可以边听旁白边跳到重点词修改画面;这一步通过后仍需渲染、合成并观看最终成片。
正常时
缺场、踩点和可确定的文字越界已处理,人也看过所有场景,才进入长渲染。
发现问题时
部分画面是否拥挤或好看仍要在动态预览里判断,修改后重新构建查看。
入口不可用或证据不足时
浏览器或场景资料不完整时停止;缺背景时临时预览可能继续,但真实渲染仍不能开始。
从哪里开始
场景片段保存后运行 run.ps1 build、lint、preview;在有声预览中听看并修改,再决定是否开始 render。
需要准备什么
- 要预览的当前工程
- 听看后需要修改的画面或节奏
从开始到拿到结果
- 1
先把场景建出来
检查场次、重点词、时长和确定会越界的文字;硬错误先修。
- 2
边听边看
有声预览能按词跳转、拖动和暂停,让人确认素材、节奏与留白。
- 3
修改后再预览
保存修改的场景并重建;确认后才开始耗时渲染。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
构建、布局阻断、有声预览与片段导出已实现关键规则与设计选择
lint 的浏览器故障是阻断,不等于没有发现越界。
有声预览能帮助修正说词与画面,但最终转场、背景音乐和完整媒体仍在交付后另验;导出的片段保存重建后才生效。
人工确认是产品步骤,不由绿色测试自动代替。
本模块用到的名词
- HARD finding(硬错误)
- 当前收尾稳定帧发现的画布外文字,或运行时检查失败;必须修复后才能继续。
- preview(动态预览)
- 浏览器中的有声审阅入口,支持时间控制和词语定位;不是最终合成视频,也不替代完整混音与转场验收。
- stable frame(稳定检查帧)
- 当前 lint 对每场只检查一个接近末尾的确定时刻;它不能覆盖中途越界和全部审美问题。
专业定义
先在几秒内看全场景,别等长渲染后才发现硬错误。
解决什么
防止低成本可发现的问题拖到昂贵渲染后,也防止把预览页误当最终成片。
当前怎样实现
- workflow.stage_build 在全链保留 01、04、100 等真实稀疏编号,scripts、fragments、srt 与时长对应关系必须一致,不按数量相等猜配对。
- 每场 build 后扫描 data-cue-missing,任何未解析词都使整个阶段失败。
- lint.py 用 Playwright 将每场设到 max(0.5 秒, 场景时长减 0.4 秒) 的一个收尾稳定帧,再检查元素边界;画布外文字计为 HARD,中途状态仍需动态预览。
- preview.py 优先从真实 4K 背景抽一帧,为每场 scene HTML 建独立 iframe 网格;背景不存在时使用纯色后备,不因此伪装真实背景验收。
- 预览绑定音频与真实词轴,可拖动、按词定位、切场和暂停保留状态;cue 编辑只导出新片段。preview 不带 --open 只生成文件,--open / serve 通过受控回环临时端口打开所需资源。
执行流程
- 1
运行 build 生成所有场景 HTML。
- 2
检查缺失 cue、编号和时长。
- 3
运行 lint,修复每个 HARD 项。
- 4
生成 preview.html。
- 5
听着旁白逐场核对节奏、留白、素材和层级;修改片段保存并重建,确认后再 render。
边界
- 布局检查主要阻断可确定的文字越界,不自动判断全部美感。
- 全出血图片等 soft 情况需要结合设计意图,不机械判失败。
- 本轮没有生成本期 preview.html,因此页面只说明能力和代码证据。
失败与恢复
- 编号或场数不一致
- 列出缺失与多余索引,先修文件集合。
- 浏览器无法检查
- lint 失败并停止,不把未运行写成 0 HARD。
- 人工预览发现节奏问题
- 回到 fragment 或 cue 修正,重建后再看,不直接进入 render。
真实入口
E:\Projects\Archives\video-scaffold\pipeline\workflow.py阶段前置关系与编号/cue 阻断
E:\Projects\Archives\video-scaffold\pipeline\lint.py真实浏览器布局检查
E:\Projects\Archives\video-scaffold\pipeline\preview.py全场景动态预览
如何验证
- 回归覆盖场景数字顺序、preview 时长配对和浏览器失败阻断。
- 2026-09-18 静态 doctor 未启动浏览器;当前源码的隔离 smoke 覆盖真实 HTTP、有声控制与片段导出,本轮没有重新运行这些演示。
- 本轮未打开源项目的实际 preview,因为没有本期脚本和场景。
与其他模块的关系
场景创作给出可检查输入;本模块决定是否值得启动长渲染,渲染模块仍需独立验证帧数与续作身份。
