画布视频工具开发评估方案

评估范围是同一个画布视频编辑器底座下的两个入口:添加字幕、视频画中画。用户看到的是不同工具入口;底层应读取和写回同一份成片 metadata,避免字幕、PIP、布局互相不同步。

共享编辑器底座

推荐架构

不要实现两个互不感知的独立工具。前端应实现一个 video composition editor:字幕调整、PIP 调整只是不同子功能面板;多个画布菜单入口只决定默认打开哪个面板和隐藏哪些不相关控件。

同一份 metadata

任意子功能提交后都写回同一份成片配置。再次打开任意入口,都用最新 metadata 恢复表单和预览。

同一套预览逻辑

字幕层、PIP 层、分屏安全区、输出画幅使用同一个预览模型。PIP 面板里的字幕预览不能另做一套。

多个轻入口

用户仍看到“调整字幕”“视频画中画”等入口;进入后只是打开同一编辑器的不同 tab / panel。

添加字幕

  • 入口:选中带字幕 metadata 的视频资产。
  • 用户可改:字幕文本、断句换行、大小写、字号、位置、样式预设。
  • 不提供:单独颜色选择、手填 SRT/ASS URL。
  • 断句和换行基于后端返回的 line-groups 重组,不由前端估算时间。
  • 输出:烧录字幕后的新视频资产。

视频画中画

  • 入口:选中带 PIP 关联信息的视频资产。
  • 用户可改:布局、浮窗位置/大小/形状、分屏比例、取景、音量、抠像、描边。
  • 缺少 PIP 视频时,可评估选择画布资产或上传后转 URL。
  • 输出:合成后的新视频资产。

首版规则

第一阶段只对两个特定技能产出的资产开放入口。技能产出时必须写入可恢复的 composition metadata,包括字幕 line-groups、词级 timing、当前样式和 PIP 配置;缺少必要入参时对应入口置灰。第二阶段再为普通视频补 ASR / Whisper、资产选择、上传等补齐能力。

字幕 / PIP 交叉规则

  • PIP 面板里的字幕预览必须复用字幕面板同一套渲染配置。
  • 上下分屏可默认开启“字幕跟随分屏”;左右分屏不自动调整字幕位置。
  • 用户手动拖动字幕后,字幕位置切为自定义,后续 PIP 调整不静默覆盖。

打开规则

  • 打开字幕工具时,按 metadata 判断是否显示已有 PIP。
  • 打开画中画配置且无 PIP metadata 时,默认进入浮窗布局并允许补齐来源。
  • 任意入口提交后,都把最新表单和预览配置写回同一份 metadata。

入口和提交链路

处理中
字幕处理任务已提交,正在处理中...
画布右侧对话
CC字幕调整任务
处理中 已完成
正在为 Tiles Survive.mp4 处理 ...
任务完成后将自动出现在画布中,您可继续与 IGNIS 对话进行创作
查看原视频
ID: Tiles Survive-captioned.mp4
定位到看板
查看原视频

演示中卡片会先显示处理中,再切换为已完成;实际以任务状态回写为准。

提交后交互

  • 用户点击提交后,表单关闭。
  • 画布出现处理中占位符,表示任务已经开始。
  • 页面显示轻提示:任务已提交,正在处理中。
  • 右侧对话只新增一张任务卡,不再额外发送文字消息。
  • 任务完成后,生成视频写回画布,卡片状态同步更新。

任务卡规则

  • 卡片标题展示工具任务名称,状态通过右上角标签展示。
  • 处理中只提供“查看原视频”。
  • 已完成后直接展示生成视频,并提供“定位到看板”“查看原视频”。
  • 卡片默认不展示提交参数;后续如需再次调整,从画布资产入口重新打开工具。

开发依赖

打开时一致

工具初始化必须读取当前资产真实配置,不能只套前端默认值。

调整时一致

前端预览使用的参数名、范围、单位要和后端任务参数一致。

提交后一致

后端输出要匹配提交前预览,并把最终参数快照回写到新资产 metadata。

读取 metadata
恢复表单
即时预览
提交快照
结果回写
需要后端 / metadata 提供 用于什么 评估结论
统一的 composition metadata:字幕 line-groups、词级 timing、样式配置、大小写、语言 / 字体和 PIP 配置快照。 任意入口打开编辑器时恢复当前产物;前端按 word_indices / page_index 调整断句和换行,时间由词级 timing 推导。 需要统一 metadata 契约
结构化字幕重渲能力:line-groups、样式预设、字号、上下位置、大小写、字幕安全区和逐词高亮。 GUI 编辑提交结构化配置,由后端重渲;complete_ass_url 只作为最终产物或老接口兜底。 需要服务支持
PIP 关联视频 URL / assetId / 名称,以及同一份 composition metadata 中的 PIP 配置快照。 打开 PIP 面板时恢复布局、大小、位置、取景、音量、抠像、描边,同时复用字幕层。 需要结果回写
资产选择 / 上传后转可访问 URL。 当 metadata 没有关联 PIP 视频时,允许用户补齐第二路视频。 第二阶段或首版兜底
无字幕 metadata 视频的 ASR / Whisper 转写服务。 未来普通视频打开字幕工具前,先生成准确词级 timing 和 line-groups 第二阶段补齐
抠像预览资源:alpha、mask、segmentation 或低清预览渲染接口。 真实预览人物抠像和抠后人物描边。 首版可不做真实预览

参数映射

当前口径

参数映射以完整合并版原型为准。前端展示的是两个入口,提交时应包装成同一份 video composition payload;后端需要返回可恢复的 metadata 快照,保证再次打开任意入口时预览和表单一致。

字幕编辑

现有原型调整维度 对应参数 / metadata 说明 范围 默认值 对齐动作
字幕句子列表 line_groups.words[] + line_groups.lines[] 左侧列表用于改错字、大小写、标点、断句和换行;逐词高亮依赖后端返回的词级 timing。 词级权威时间 + 行 / 屏分组。 读取 metadata 中的 line-groups 后端需回写 line-groups
回车拆分 / 退格合并 page_index / word_indices 重组 Enter / Backspace 只改变展示分组:一句话可拆成多行,多行可合并成一行,不改变 TTS 内容和词级时间。 每个词必须被分配且只分配到一个 page;page 连续且非空。 无。 前端需按后端协议改造
样式预设 caption_style 首版不提供单独基础颜色修改,只提供四种样式预设;样式包含高亮、描边、阴影等 ASS 规则。 purple_highlight / yellow_outline / bluegreen_gradient / word_pop purple_highlight 前端枚举按后端规范传参
字体大小 caption.fontSize / override_fontsize 画布可拖拽缩放,表单滑轴同步;最终输出需和预览字号一致。 16 - 52 px 28 px 双方需对齐单位
大小写 caption.text_case 仅影响显示和最终烧录文本,不改变原始口播音频。 uppercase / original uppercase 后端需支持可恢复配置
字幕安全间距与自动换行 caption.safeArea / caption.lineWrap 不提供给用户配置。后端需按视频尺寸返回左右安全间距、最多 2 行和自动换行结果,前端按同一份配置预览。 随画幅、字体、语言和样式变化。 后端返回;一句话能放下一行时只显示一行。 后端需返回可恢复配置
字幕上下位置 caption_position / caption_anchor_pct 按后端标准定义;上下分屏跟随开启时由分屏比例自动计算并同步表单值。 4% - 82% 读取后端 metadata;上下分屏跟随时贴近分屏交界处。 前端按后端锚点标准实现
字幕位置跟随分屏 caption.followSplit / captionPlacement.mode 只在上下分屏提供。左右分屏不自动调整字幕位置。 true / false 上下分屏默认 true;用户手动拖动后 false 前端已原型化

画中画配置

现有原型调整维度 对应参数 / metadata 说明 范围 默认值 对齐动作
画中画来源 pip_video_url / pip_asset_id 优先读取技能产物 metadata,但用户界面展示视频文件名;允许从当前画布选择其他视频资源或上传。 URL / assetId metadata 中关联的视频文件。 后端需回写关联资产
是否存在 PIP metadata.hasPip 字幕入口根据该字段决定是否显示 PIP;没有 PIP 时字幕工具只显示主视频。 true / false 由资产 metadata 决定。 后端需提供判断字段
布局 pip.layout / layout 决定后续显示浮窗配置、分屏配置、取景和音量。 overlay / split-left / split-top overlay 双方需对齐枚举
浮窗位置 overlay_position / overlay_x/y 四角快捷位和画布拖拽位置共用;拖拽后可写入 custom 坐标。 左上 / 右上 / 左下 / 右下 / custom 右上 双方需对齐百分比坐标
浮窗大小 overlay_size 浮窗占主画布宽度比例;画布四角缩放同步该值。 18% - 58% 30% 前端已原型化
浮窗形状 overlay_shape 影响预览裁切容器和后端合成 mask。 circle / square / vrect / hrect circle 双方需对齐枚举
分屏比例 split_pip_ratio + split_pip_side 数字人区域占比。上下分屏默认数字人在上方;同时驱动字幕跟随位置。 24% - 50% 34%;上下分屏 split_pip_side = first 后端默认需和 UE 技能产物对齐
画面取景目标 cropTarget 浮窗模式只调整画中画取景;分屏模式可在主视频取景和画中画取景之间切换。 pip;分屏时增加 main 浮窗默认 pip 前端已原型化
水平 / 垂直取景 main_framing.x/ypip_framing.x/y 百分比平移,用于调整视频在容器内的取景范围;主视频取景只在分屏裁切场景提供。 -60 - 60 0 双方需对齐变换公式
取景缩放 main_framing.scalepip_framing.scale 用于主视频或 PIP 视频取景缩放;主视频取景只在分屏裁切场景提供。 70% - 220% 100% 双方需对齐 transform
人物抠像 pip_cutout 仅浮窗布局下展示。抠像在最终渲染输出时处理,不支持实时预览。 true / false false 后端需提供抠像能力
描边 stroke.enabled/color/width 仅浮窗布局下展示;抠像开启时最终描边对象是抠后人物,前端首版不真实预览。 颜色 + 2 - 18 px 关闭;白色;6 px 后端需支持抠后描边
主视频音量 main_volume 合成输出中的主视频音量,不等同播放器预览音量。 0 - 100 30 双方需对齐音量曲线
数字人音量 pip_volume 用户理解为“口播讲解音量”。实际技能产物中讲解声音可能来自独立 TTS 音轨,而不是 PIP 视频本身,开发需评估合成链路如何映射。 0 - 100 100 需确认 TTS / PIP 音频来源

后端已有但前端不直接暴露

参数 / 服务 前端处理方式 原因
PIP 管道字段:instructionsource_systemcapabilitygateway_task_idcallback_url 任务系统自动填。 不属于用户配置。
main_video_urlpip_video_url 主视频来自画布选中资产;PIP 视频来自 metadata、资产选择或上传。 用户不手填 URL。
overlay_x/yoverlay_marginsplit_pip_sidemain_framingpip_framing 通过拖拽、方向按钮、取景控件或默认配置生成。 用户看画面,不看接口结构。
user_brief 由表单快照自动生成。 给 agent / 任务记录使用。
override_primary_colorass_style_sample_urlsrt_urlcomplete_ass_url 首版只暴露样式预设;字幕文件 URL 由服务生成。 避免用户理解中间文件和底层样式字段。

完整原型和入口包装

完整合并版:视频处理编辑器

两个入口 / 同一底座 / 同一份 metadata

推荐开发以这一版为目标:用户仍从“字幕编辑”和“画中画配置”两个入口进入,但底层打开同一个视频处理编辑器,共用播放区、预览状态、字幕/PIP 配置和提交链路。

表单原型落地说明

字幕编辑表单

  • 用户只调整字幕文本、断句换行、大小写、样式预设、字号和上下位置。
  • 首版只对已有字幕 metadata 的视频开放;无 metadata 的普通视频,未来需先接 ASR / Whisper 生成准确词级 timing 和 line-groups
  • 断句和换行基于 line-groups 重组 page_index / word_indices,时间由词级 timing 自动推导,不由前端估算。
  • 用户可自助把一句话拆成多行展示,或把多行合并成一行展示;这只影响字幕展示逻辑,不影响 TTS 内容和时间。
  • 不提供最大行数、每行最多单词等专业参数;后端需返回和最终渲染一致的安全间距、自动换行结果和最多 2 行规则。
  • 前端预览必须读取后端返回的字幕安全区配置;不同尺寸、不同画幅的视频不能共用一套固定左右边距。
  • 大小写需要后端支持可恢复配置:全大写或按原文。

画中画配置表单

  • 来源默认读取 metadata,但界面展示视频文件名,不展示 metadata 或 URL。
  • 实际画布接入后,需要支持从当前画布中选择其他视频资产;当前静态原型只用按钮占位。
  • 不提供“不显示画中画”;用户不需要 PIP 时不应打开该入口。
  • 浮窗模式只支持画中画取景;分屏模式下主视频会被裁切,因此才提供主视频取景。
  • 浮窗边距不作为用户配置,按默认值或拖拽位置生成;描边颜色继续保留可选。
  • 上下分屏默认数字人在上方;如果后端默认不是该方向,需要按产品默认调整。
  • “数字人音量”对用户应解释为口播讲解音量;若 UE 数字人流程的讲解音频来自独立 TTS 音轨,需要后端在合成接口中统一映射。