Frontend GUI / Caption Tool

字幕 GUI 简化配置说明

本页只说明后续前端 GUI 的简化配置范围和结构化提交方式。完整字幕能力仍以后端 ASS 生成和烧制为准。

返回字幕控制需求说明

画布入口和提交逻辑

字幕 GUI 应基于现有画布工具链路扩展:视频右键菜单打开字幕表单,提交后复用当前任务提交、Toast、源视频右侧占位符和结果回写逻辑;右侧对话只新增一张字幕任务卡。

1. 画布入口 在视频右键菜单中提供字幕入口;按是否已有 SRT 显示不同名称。
2. 字幕表单 点击后打开字幕表单;表单标题与入口名称保持一致。
3. 结构化提交 提交结构化参数,准确驱动 agent 为当前视频添加或调整字幕。
4. 画布占位 复用 createPlaceholder,在源视频右侧展示处理中占位符。
5. 对话卡片 右侧对话只显示一张任务卡;完成后展示视频结果并可定位到看板。

本期范围

  • 先针对特定技能产出的视频开放字幕调整。
  • 这类视频资产需要同时包含视频和对应字幕内容。
  • 本期默认可判断为已有字幕内容,入口和表单标题使用“调整字幕”。
  • 用户点击入口后直接打开字幕调整表单。

后续扩展

  • 后续开放到所有画布视频。
  • 有 SRT 或字幕内容时显示“调整字幕”。
  • 无 SRT 时显示“添加字幕”,打开表单前先进入字幕提取 loading。
  • 字幕无法提取时给出错误提示,不进入调整表单。

推荐打开形式

  • 桌面端只遮住左侧画布区域,不遮右侧对话。
  • 表单居中覆盖在画布工作区内,画布背景降噪变暗。
  • 右侧对话保持可见,便于用户理解任务提交后的结果位置。

交互边界

  • 表单打开时锁定画布选择、拖拽和右键菜单。
  • 右侧对话可保持可读;是否允许继续发送消息由产品侧评估。
  • 用户提交后表单关闭,画布出现占位符,右侧对话新增任务卡。

窄屏兜底

  • 画布宽度不足时切换为全局弹窗。
  • 移动端或小屏可遮住画布和对话,优先保证表单可操作。
  • 关闭或提交后回到原画布视口和原选中视频。
处理中
字幕处理任务已提交,正在处理中...
画布右侧对话
CC字幕调整任务
处理中 已完成
正在为 Tiles Survive.mp4 处理 ...
任务完成后将自动出现在画布中,您可继续与 IGNIS 对话进行创作
查看原视频 继续调整
ID: Tiles Survive-captioned.mp4
定位到看板
继续调整 查看原视频

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

提交后交互

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

任务卡规则

  • 卡片标题固定为“字幕调整任务”,状态通过右上角标签展示。
  • 处理中只提供“查看原视频”和“继续调整”。
  • 已完成后直接展示生成视频,并提供“定位到看板”“继续调整”“查看原视频”。
  • 卡片默认不展示提交参数;点击“继续调整”时恢复表单参数。
  • 卡片背后保存结构化参数,用于驱动 agent 执行任务和后续“继续调整”。
  • 是否需要配套提示词,由开发侧结合 agent 执行方式评估。
  • 用户界面只展示任务状态和必要动作,不展示内部参数。
{
  "message_type": "canvas_tool_command",
  "message_data": {
    "payload": {
      "commandId": "cmd_caption_01HX",
      "title": "字幕调整任务",
      "status": "done",
      "display": {
        "runningTitle": "正在为 Tiles Survive.mp4 处理 ...",
        "runningDescription": "任务完成后将自动出现在画布中,您可继续与 IGNIS 对话进行创作",
        "result": {
          "type": "video",
          "title": "带字幕视频已生成",
          "assetId": "asset:captioned-video"
        },
        "actions": {
          "running": ["查看原视频", "继续调整"],
          "done": ["定位到看板", "继续调整", "查看原视频"],
          "failed": ["继续调整", "重新提交"]
        }
      },
      "target": {
        "shapeId": "shape:video",
        "assetId": "asset:video",
        "name": "Tiles Survive.mp4"
      },
      "params": {
        "preset": "purple_highlight_follow",
        "textCase": "uppercase",
        "sizePercent": 100,
        "sizePercentRange": [50, 220],
        "verticalOffsetPx": 0,
        "verticalOffsetMode": "full_frame",
        "maxLines": 2,
        "wordsPerLine": "auto",
        "intent": "add_or_update_caption"
      }
    }
  }
}

调整表单

GUI 只提供用户常用的简单样式调整;高级字幕参数保留给 agent 多轮对话继续微调。

开放给用户的配置

  • 样式预设:紫色高亮跟读、黄字黑描边跟读、蓝绿渐变跟读、逐词跳出。
  • 大小写:全大写、保留原文;默认全大写。
  • 整体大小:滑杆,50% 到 220%,默认 100%。
  • 上下位置:滑杆,按视频真实高度动态计算,支持从画面底部移动到画面顶部,默认 0。
  • 最多显示行数:1 行、2 行、3 行,默认 2 行。
  • 每行最多单词:自动、2、3、4、5、6,默认自动。
  • 字幕文本和时间轴:字幕段编辑、时间码编辑、片段播放、拆分、合并、删除。

预览固定规则

  • 字体、字重、行高、PlayRes 等不作为用户配置项。
  • 前端预览应使用服务端约定的默认值,确保预览接近最终烧制结果。
  • 当前默认:字重 600,整行行高 1.5,高亮词底色行盒 1.16,PlayRes 等于视频真实宽高。