ai-chatbot/docs/smart-edit-fixes-2026-09-18.md

19 KiB
Raw Blame History

智能剪辑修复进度(2026-09-18)

基线 68f62dae,承接09-17的95项清单;仅本地修改和验证,未部署、未推送。累计状态不是全项本轮复测,保留每行的证据边界。尚不能认定为全部功能齐全或像素级完全一致。

本轮结果

已处理字幕行操作、字体搜索/分类、五种实际字体与成片一致性、新字幕1080坐标基准、字间距/描边/单位、正音量增益和静音恢复、收起预览与Esc、真实节点时间轴、音乐卡点与广告版本设置、音频面板拖宽、转场覆盖框与主画面预览时机。

增加排队导出的取消入口。独立合成服务构建携带字体包;真实测试发现临时字体目录清理会误报合成失败,已修正为递归清理,非关键清理失败不删除已验证成片。

验证

  • TypeScript:通过。
  • 回归:496通过、1跳过;最后定向剪辑回归21通过。
  • 真实FFmpeg:六种比例、三种转场、居中/旧重叠时序、字幕位置/透明度;正增益振幅、原声及独立音轨静音;五种字体实际字形输出。
  • 真实分析:PySceneDetect 3镜头、RMS 2有效区段、librosa 22个节拍。
  • 真实本地HTTP合成服务:鉴权、真实字体成片、进程强制中断后恢复、幂等、冲突拒绝、完成记录重启保留。
  • 浏览器独立测试:字幕新增和字体切换、新字幕56px、+0.5dB静音后恢复、折叠播放到片尾、Esc退出、卡点缺音乐拦截、选择音乐、广告默认3版。

本地独立页面仍用样例任务回调,不能冒充主站Next API端到端成功;上面的真实HTTP测试针对独立合成服务。测试目录 .qa/smart-edit/fixes-0918/ 的日志与截图不提交到Git,复现测试脚本提交。

09-18续修:本轮指定的四项

人声分离、自动转写、2002项字体目录、主站智能剪辑本地全链路已接通并使用真实模型/FFmpeg验证。详细环境、数据及边界见 续修验收记录。以上早先的“独立测试页”结论保留为历史;本轮新增真实Next生产构建验收。

仍未完成的其他范围

  • 全部2002字体逐字形/行高/DPR黄金图对拍;字体目录和实际字体文件已齐全。
  • 运行中远程合成主动取消;后台休眠/断网/各窄窗口完整矩阵。
  • 五种模式与参考的算法效果逐案对比、广告多创意策略、真实波形及未穷尽边界。
  • 线上部署与真实线上对象存储验收。本轮只用隔离本地数据库及S3兼容测试服务。

参考字号证据:预览iframe可见SPAN为56px,父画布1920×1080。缩放证据:slider实际状态19.67871485943775时2.2秒转场宽220px,50时552.2px,100时1100px;采用2+4.98×slider的映射。最小转场覆盖框44px单独约束。

累计95项

  • 通过:39
  • 待验:6
  • 代码核对:17
  • 已修复:28
  • 部分修复:4
  • 既有证据:1

节点与输入

ID 检查项 状态 当前结论 证据
SE-001 打开剪辑 通过 参考和本地均有入口;本地进入真实编辑组件 本轮UI
SE-002 五种模式名称和顺序 通过 默认、讲解、批量广告、口播、素材混剪相同 参考node-modes截图/SmartEditNode
SE-003 五种模式算法效果 待验 本地有模式分支;没有重新提交参考站付费生成,不能认定效果等同 execute/contract
SE-004 六种比例 通过 21:9、16:9、9:16、1:1、4:3、3:4;实际合成覆盖 参考node-settings/本轮FFmpeg
SE-005 三种清晰度 通过 480P、720P、1080P;控件一致 参考node-settings/SmartEditNode
SE-006 时长范围 通过 0–300秒、步长1秒;本地0为自动 参考可见DOM/contract
SE-007 提示词编辑与展开 代码核对 本地受控输入、展开及提交;参考既有提示词未改动 SmartEditNode
SE-008 引用画布素材 代码核对 参考进入引用选择;生产组件onReference连接连线状态,本地独立测试页只是候选列表 参考引用模式/主画布调用点
SE-009 素材序号、时长、移除 代码核对 本地有缩略图、序号、时长及移除;未删除参考原素材 SmartEditNode
SE-010 本地上传与数量限制 代码核对 真实上传入口,上限12个素材、单个125MiB;参考上限尚未验证 SmartEditNode/SmartEditDialog
SE-011 节点缩略时间轴 已修复 节点刻度、视频、字幕、独立音轨从实际计划生成;重新生成后按任务版本选择新计划,保留所选版本。 本轮节点UI/SmartEditNodeCard
SE-012 批量广告多版本 部分修复 节点新增1–3版选择,未指定时广告默认3版;实际仍是候选顺序变体,未认定为参考站的多创意算法。 本轮UI/intent helpers
SE-013 提示词要求卡点 已修复 节点提示词的常见“卡点/beat sync”表达关联开关,显式关闭优先;支持画布音乐选择/上传及2或4拍切换,缺音乐阻止提交。并非通用自然语言意图解析。 本轮UI/intent helpers/真实librosa 22拍

布局与操作

ID 检查项 状态 当前结论 证据
SE-014 顶栏高度和边距 通过 48px顶栏、8px页面边距;本轮图像对照 参考DOM/本地CSS
SE-015 左右参数栏宽度 通过 转场库372px、参数栏300px,均可拖动调整 参考DOM/本地CSS
SE-016 面板背景与关闭按钮 已修复 背景统一#202020,边框白色10%,关闭按钮24px,标题500/14px 参考transition.json/本地CSS
SE-017 默认时间轴高度 已修复 保留打开时的像素高度,窗口缩小时仅为可用空间收缩,不再每次重算35vh。 resize代码
SE-018 折叠预览 已修复 收起后背景透明、可操作下方画布,仅底部保留时间轴;预览组件保留,实测能播放到片尾。独立页面下层为测试按钮,主画布接入仍需整体验收。 本轮本地UI
SE-019 全屏预览 代码核对 本地调用Fullscreen API并显示拒绝错误;本轮未重测不同浏览器权限状态 SmartEditEditor
SE-020 撤销重做 通过 本轮分离音轨后撤销成功;参考宽屏有按钮、窄屏隐藏,先前未见不代表没有 本轮UI/参考1512宽度
SE-021 播放、暂停、逐帧 代码核对 Space与左右键、30fps步进、片尾停止;前批浏览器已验证,本轮保留代码核对口径 SmartEditEditor/EditPreview
SE-022 吸附默认值 通过 参考关闭,本地SmartEditEditor也是false;纠正旧文档“本地开启”误记 参考AX/SmartEditEditor:state
SE-023 退出与Esc 已修复 Esc退出整个编辑器,输入框编辑时不误退出;收起时保留关闭按钮。 本轮本地UI
SE-024 窄屏可用性 待验 参考1024宽度测得左右仍372/300;本地三栏与工具条更窄窗口尚无完整可用性验收 reference-transition-1024

视频片段

ID 检查项 状态 当前结论 证据
SE-025 四角缩放、移动与重置 通过 本轮真实合成像素验证;本地有选框和重置,参考四角手柄可见 本轮FFmpeg/参考video
SE-026 变速上下调步长 已修复 参考1.00→1.01,本地0.05改为0.01;浏览器已复测 本轮UI
SE-027 变速支持范围 待验 本地0.5–2倍;参考未穷尽上下限,不能因步长一致声称范围一致 contract/参考video
SE-028 时长输入 代码核对 按原素材剩余长度和变速约束,不能超过素材 SmartEditEditor/contract
SE-029 数值越界后的显示 已修复 到上限2后再输入99,显示回到2.00,不残留非法数字 本轮UI
SE-030 增益步长 已修复 参考0.5dB,本地由1改0.5;浏览器0→-0.5确认 本轮UI
SE-031 正增益 已修复 本地支持最高+12dB,预览使用GainNode,导出实际音量放大;参考上限尚未确认。跨域正增益素材经登录下载接口取得同源副本,需另测真实主站链路。 本轮浏览器+0.5dB/FFmpeg约2倍振幅
SE-032 边缘裁剪和排序 代码核对 已有按source时间/速度换算和撤销;本轮未重新拖遍所有方向 SmartEditEditor
SE-033 分割和左右裁剪 通过 边界禁用、源范围及片长合同回归通过;本轮未对拍参考破坏性编辑 本轮helpers/SmartEditEditor
SE-034 至少保留一个片段 待验 本地阻止删最后一段;参考空时间轴行为未删除原素材验证 SmartEditEditor
SE-035 右键菜单 部分修复 已增加人声分离子菜单及仅保留人声、仅保留背景音、两轨输出;菜单其他文案与参考仍有差异。 本轮主站UI/真实HTDemucs
SE-036 转场覆盖区右键 已修复 转场覆盖区域按指针时间选择底层片段并打开视频右键菜单。 本轮浏览器:覆盖框右键选中有声片段并成功分离
SE-037 静音后恢复原增益 已修复 新增可选muted独立于gain保存,原声和独立音轨恢复不会覆盖原增益;分离时继承静音状态。 浏览器原声及独立轨+0.5dB静音恢复/真实FFmpeg两类静音

字幕

ID 检查项 状态 当前结论 证据
SE-038 空列表、新建、搜索 通过 参考空列表和新建已操作;本地新建成功、搜索有真实过滤 本轮UI/源码
SE-039 列表逐条新增与删除 已修复 每行新增在后面插入/删除,插入按时间排序、遇下条字幕或片尾缩短,并定位新字幕;片尾不能插入时给提示。 本轮UI/代码
SE-040 列表时间格式 已修复 时间框采用MM:SS.xx,可输入小数秒;失焦校验范围,非法值还原,Esc取消编辑。参考只展示整秒的像素细节尚未作为黄金图验收。 本轮UI
SE-041 选中文本、编辑与位置 通过 本轮本地样式编辑和实际字幕位置像素测试通过 本轮UI/FFmpeg
SE-042 显示和隐藏 代码核对 subtitles控制预览和导出;关闭面板仅隐藏编辑轨道 SmartEditEditor/compiledSubtitles
SE-043 字体搜索和长列表 通过 参考目录2002项完整收录,1997新增文件全部下载解析与双SHA校验;搜索、四分类、虚拟滚动、按需加载可用。 remaining-0918/reference-fonts.json、prepare-catalog.log;主站字体切换
SE-044 字体分类 已修复 新增全部/常用/推荐/Google四类筛选;范围限已打包的实际字体。 本轮UI/CaptionFonts
SE-045 预览与导出的字形 部分修复 2002字体目录已齐;预览与FFmpeg使用同一固定文件,5原有+6新增字体实际合成通过;未对2002种字体逐字形、行高、DPR作黄金图对拍。 catalog-render.log/主站大宝桃桃体切换
SE-046 字号范围和显示单位 已修复 从参考可见iframe确认1920×1080、56px;新字幕明确1080基准,默认56/12–72px;旧720基准按比例显示并保留历史超范围值。 本轮参考DOM/legacy兼容helpers/本地UI
SE-047 字间距范围和控件 已修复 字间距改X数值框0–100;旧工程负值保留,预览与ASS依各自基准缩放。 StyleNumber/contract
SE-048 字体颜色和十六进制 代码核对 两处均有取色和hex;本地失焦校验非法值;样式烧录已回归 StyleColor/FFmpeg
SE-049 六种预设入口 通过 默认、白黑、黑白、黄黑、白粉、粉黑均有 本轮参考及本地UI
SE-050 预设按钮外观 已修复 默认预设显示“默认”,其他为T;选中描边按实际样式匹配。 本轮字幕UI
SE-051 描边颜色和粗细 已修复 新字幕默认白色描边,粗细0–20;旧字幕不变。预览和ASS同步缩放。 本轮UI/contract/FFmpeg
SE-052 描边不透明度语义 已修复 独立outlineOpacity;0时保留文字,只去描边;旧整行opacity保持兼容 UI截图/ASS合同/实际像素测试
SE-053 字号等数值单位装饰 已修复 增加px/%单位和上下步进按钮;数值失焦校验,不提交编辑中的空值。 StyleNumber/本地构建
SE-054 应用全部 代码核对 复制完整style含新outlineOpacity;本轮未覆盖所有字幕数量组合 SmartEditEditor
SE-055 自动字幕与长转场 已修复 居中转场不再把后片段字幕向后延迟整个转场时长,避免片头字幕丢失 新增合同回归
SE-056 手工字幕与SRT 通过 手工字幕保留位置和样式,SRT仅保留文本时间;ASS字符转义回归通过 本轮helpers/FFmpeg
SE-057 语音自动转写 通过 真实FunASR转写成功;修复缺少pred_timestamp造成整段无标点时间戳的问题,限制负起点并映射剪辑速度/裁剪。字幕按钮提交主站任务,完成后刷新恢复。 model-regression/report.json;production-chain.log;主站浏览器

转场

ID 检查项 状态 当前结论 证据
SE-058 三种基础转场入口 通过 淡入淡出、黑场过渡、白场过渡;这不是全站视频生成特效库 本轮参考UI
SE-059 原始动态素材 通过 直接使用参考原始WebP,每张75帧/3秒;本地动画可见 public/transitions/本轮UI
SE-060 分类栏与卡片位置 已修复 分类48px高、13px字体,卡片108×130,图框100×100,列距7px 参考DOM/本地CSS
SE-061 选中边框和颜色 已修复 2px改1px,避免图片缩小;边框/文字改#09caf5,圆角6px 参考DOM/本地截图
SE-062 时长与名称行间距 已修复 改16px行高,时长框与90px小预览纵向位置对齐 参考DOM/本地CSS
SE-063 时长上下限与步长 通过 0.2–4秒,0.1步进,非法值失焦归一化 前批UI/本轮合同
SE-064 相邻素材小预览 通过 本地使用相邻真实视频,静音循环并应用效果 本轮UI
SE-065 主画面预览时机 已修复 主画面保持播放头,右侧小预览独立循环;取消选择转场时自动替换整个主画面的分支。 本轮浏览器主画面停0秒、小预览独立循环/既有参考观察
SE-066 居中时序和总片长 通过 三种2.2/4秒真实成片均保留4秒总长 本轮FFmpeg
SE-067 黑场与白场中点 通过 真实像素验证纯黑/纯白中点 本轮FFmpeg
SE-068 极短片段和连续接点 通过 短片段约束和避免三片同时重叠的合同通过 本轮helpers/前批压力合成
SE-069 删除与硬切 通过 已有删除恢复硬切;本轮逐片段与硬切组合实际合成通过 FFmpeg/源码
SE-070 时间轴覆盖框 已修复 覆盖框top4、高60,最小点击宽44;补选中填充、两侧标记和16px参考图标。缩放滑块扩0–100,以参考19.6787=100px/s、50=251px/s、100=500px/s测量映射。 本轮参考可见DOM/本地CSS
SE-071 旧方案兼容 通过 未设置alignment的旧重叠方案保留原片长语义 本轮helpers/FFmpeg

音频

ID 检查项 状态 当前结论 证据
SE-072 有声视频分离 通过 本轮真实点按生成独立音轨,撤销后消失 本轮本地UI
SE-073 无音轨时分离禁用 通过 参考当前无音轨素材禁用;本地按hasAudio禁用 本轮参考UI/源码
SE-074 分离后声音不叠加 通过 实际音频RMS与转场包络回归通过 本轮FFmpeg
SE-075 独立音轨变速、淡入淡出 通过 实际2倍速、增益、延迟、淡入淡出及长音轨黑尾回归通过 本轮FFmpeg
SE-076 独立音轨裁剪、分割、移动 代码核对 有完整source范围与时间轴处理;前批UI通过,本轮未全部重拖 SmartEditEditor/contract
SE-077 人声分离两个分支 通过 HTDemucs真实离线分离,视频和独立音轨可用;支持仅人声、仅背景及两轨输出,保留速度/增益/静音/包络。混合信号重构最大误差1.49e-8。 smart-edit-models.py;主站API与UI
SE-078 音频参数栏调整宽度 已修复 音频参数栏新增同一宽度拖拽柄;参考有声参数更多行为仍待验。 SmartEditEditor
SE-079 真实波形 待验 本地音频条是纯色色块,没有采样波形;本轮未取得参考有声轨波形证据 se-wave/se-audio-clip
SE-080 音乐与卡点 通过 节拍与候选剪辑合同回归通过,音乐混音真实输出通过;不是参考算法效果对拍 本轮helpers/FFmpeg

导出与恢复

ID 检查项 状态 当前结论 证据
SE-081 导出菜单位置 通过 本地/画布两个目的地和参考相同 参考export-menu/源码
SE-082 导出菜单视觉 代码核对 本地有200px菜单、40px条目;边框/图标需独立像素精调 参考截图/CSS
SE-083 真实本地合成 通过 FFmpeg实际生成结果,不用模拟成功替代 本轮ffmpeg.log
SE-084 提交任务ID和幂等 通过 请求ID回归与远程确定性任务身份测试通过 本轮helpers
SE-085 刷新恢复导出任务 通过 任务检查点/reconcile合同通过;本轮未执行真实Next页面断网恢复 本轮helpers
SE-086 浏览器中返回画布结果 通过 主站Next生产构建:真实登录/隔离数据库/上传/排队/分离/转写/合成/MP4和SRT下载/浏览器回填播放及刷新恢复通过。存储用本地S3兼容服务,未测线上存储或部署。修复新画布时区错位漏回填与成片时长显示。 production-chain.log;main-result.mp4;主站浏览器
SE-087 任务错误和服务不可用 代码核对 导出按钮按能力禁用,失败状态显示错误;本轮未切断实际服务故障注入 SmartEditEditor/SmartEditDialog
SE-088 取消远程导出 部分修复 已接排队导出的取消按钮到现有鉴权取消API,取消状态不再等待。运行中远程FFmpeg的主动终止仍未实现,主站取消按钮全链路未验。 onCancel/现有task-store
SE-089 多版本全导出 代码核对 高级设置有导出全部版本;主节点默认只一版,参考完整多版结果未生成 SmartEditDialog
SE-090 最高时长与比例 通过 300秒约束、宽屏远程结果下载合同、6比例真实本地输出通过 本轮helpers/FFmpeg

边界与性能

ID 检查项 状态 当前结论 证据
SE-091 最大片段数 代码核对 最多12视频片段、24独立音轨、500字幕;不是参考站已确认相同限制 contract
SE-092 后台标签恢复 待验 循环预览监听visibilitychange;本轮未覆盖系统休眠/后台节流完整矩阵 TransitionPreview
SE-093 原生媒体加载失败 代码核对 play的AbortError忽略,其余报错可见;本轮未测试全部外部域名/CORS EditPreview
SE-094 高清与12片段性能 既有证据 前批1080P4秒合成12.81秒、12片段7.604秒;本轮未重复此压力测试 transition-stress-native.log
SE-095 服务部署状态 通过 本轮所有修改仅本地,未更新48或算力服务器 git/操作记录