- 在片段工作台选择多个候选,逐条修改名称。最多 12 条,使用当前草稿的删词、去静音和字幕设置,各自保留选中的原片区间。
- 点击「预演批量输出」,核对每条的版本号与实际时长,再确认输出。所有版本一次性加入本地队列。
- 版本卡片显示排队、渲染进度、完成、失败或取消。可独立取消任务,也可按保存的计划重试失败/取消的版本。
- 刷新、离开页面不影响服务端队列。服务重启后,失去心跳的任务会在下一次读取时识别为中断(最多约 45 秒),可从版本卡片重试。任务中心也能进入对应素材。
每次重试保留原版本号、计划、保留区间和转写快照,使用独立输出文件。不会用重新转写后的文字悄悄替换历史字幕;旧任务也不能覆盖新尝试的结果。取消后会终止本地 FFmpeg 并清理该次的临时产物。较早版本没有转写快照时,可载入为草稿重新预演输出。
原片和成片的范围读取支持浏览器中止请求,切换视频时会释放文件流,避免重复关闭异常。
剪辑从目标区间附近开始解码,避免为了后段短片解码前面的全部视频。视频、音频与字幕仍按同一份源时间区间重排。局部回归对比了从头解码与定位解码的画面相似度、音频差异和时长。
文字时间线每段最多显示 160 个词,全文搜索最多定位 1000 处;可前后翻段、跳到搜索结果或定位当前播放处。页码与搜索不会改变剪辑计划。
展开「字幕校对」,输入原话与正确写法,查看匹配和替换预览后应用。支持跨词 ID 的连续词组、同一词内的重复文字,以及同一原话的多处修正。最多 200 项,每项最多 100 个连续词 ID、240 个字符,禁止重叠。校对进入撤销/重做和版本计划,原始转写保持不变。
「去静音」默认显示检测到的每个停顿,用户可以逐段试听、勾选要剪掉的区间,并调节停顿两侧保留的毫秒数。未显式保存区间的旧计划继续表示“剪掉全部检测停顿”;新计划保存 removedSilenceRanges 和 silencePaddingMs,因此试听、预演、渲染、重试和专业时间线导出的停顿范围一致。
SRT、VTT、烧录字幕及专业时间线的片段备注使用校对结果。词组被剪断或部分删掉时跳过整组校对,避免把缺失的原话重新补进字幕。模型提供的时间戳粒度决定可以独立编辑的文字单位,不人为平均分配字级时间。
POST /api/project/{projectId}/media/{mediaId}/batch:action为preview或apply,提供batchId(8–64 位字母数字/连字符)、baseRevision和items: [{ label, plan }]。预演返回各项proposal;提交使用相同batchId,重复请求返回已有任务。批次原子创建;版本冲突返回 409,非法计划/不足 0.5 秒返回 422。POST .../edit:{ action: "cancel" | "retry", editId }。仅操作当前项目/素材的版本。成功版本不可直接重试;重新输出时创建新版本。GET .../edit返回最新进度、状态与错误;不传limit时返回最多 500 个词。GET /api/project/{projectId}/media返回版本状态、进度、批次 ID 和结果链接,不重复发送内部转写快照。
计划可选字段:
{
"captionReplacements": [
{ "wordIds": ["w1", "w2"], "text": "旅行杯" }
]
}选择性去静音的计划还可以带上 removedSilenceRanges,每个区间使用转写文档里的源时间(秒):
{
"removeSilence": true,
"removedSilenceRanges": [{ "start": 12.4, "end": 13.8 }]
}请使用 inspect 返回的真实连续 ID。校对只改变字幕,不改变源时间、删词或音频。
设置页与素材页按平台展示图片/视频目录状态、检查时间、模型数量和刷新入口。目录请求失败、空目录、备用目录分别呈现;不会因部分请求失败自动替换已选默认模型。变更密钥或服务地址后旧请求不能覆盖新配置的结果。
目录成功只代表目录可读;不验证密钥权限、余额或生成服务可用性。目录刷新不触发生成,也不调用付费模型。错误响应使用固定错误码,不回传上游 URL、密钥或原始错误。