为当前剪辑添加字幕
使用已保存的项目,其中包含已放置的轨道和名为 transcript.json 的转录文档。
$PROJECT_ID 和 $REVISION 指向当前剪辑。在调整时间后再进行草稿。
将 $PLACEHOLDERS 替换为实际值;直接发送列出的 cutbolt_* 调用(不带命令),
或使用 cutbolt_run 及命令/参数。保持 job.start 中的阻塞渲染。
{"command":"captions.draft","project":{"project_id":"$PROJECT_ID"},"transcripts":[{"file":"transcript.json"}]}
审查返回文档中的提示文本和时间,并将其保留为 $CAPTION_DOCUMENT。
在渲染前纠正识别错误。$FONT 是一个字体标识/路径对象(例如 {"path":"font.ttf"})或
来自 fonts.find 的明确已安装字体名称。$FONT_SIZE、$LINE_HEIGHT 和 $CAPTION_RECT
是适合该项目的像素布局值。为实际提示留出足够的空间。
溢出会被拒绝,因此不会允许被裁剪的文本无声通过。
{"command":"job.start","request_id":"caption-render","run":"captions.render","arguments":{"document":"$CAPTION_DOCUMENT","project":{"project_id":"$PROJECT_ID"},"layouts":{"default":{"fonts":["$FONT"],"size":"$FONT_SIZE","rect":"$CAPTION_RECT","line_height":"$LINE_HEIGHT","letter_spacing":0,"wrap":"none","overflow":"reject"}},"output":"caption-edits.json","mode":"generated","track_id":"captions","asset_id":"caption"}}
$JOB_ID 是返回的票据。
{"command":"job.wait","job_id":"$JOB_ID","timeout_seconds":120}
仅在状态为完成时继续。将 result.operations 保留为 $CAPTION_OPERATIONS
(一个文件引用),将 result.expected_revision 保留为 $CAPTION_REVISION。在记录的版本处应用该提案。
该命令会在字幕轨道不存在时创建它。如果该轨道已经包含重叠的字幕,请明确移除旧的目的剪辑,并针对新版本
重新准备。不要重复字幕或覆盖无关的图形。
{"command":"session.apply","project_id":"$PROJECT_ID","expected_revision":"$CAPTION_REVISION","request_id":"attach-captions","operations":"$CAPTION_OPERATIONS"}
保留新版本。在代表性时间点导出和检查实际字幕,包括第一个/最后一个提示。在此步骤之后进行时间编辑需要重新生成字幕。 保存的剪辑保留可编辑的场景配方,并直接使用素材进行渲染;不会编译中间字幕影片。保留字幕文档以供后续文本/时间编辑。
对于提供的本地字体,使用路径对象;字符串指定已安装的字体家族。
缺失或歧义的已安装字体需要来自 fonts.find 的可用标识。对于文本溢出,
调整框/字体/提示布局并使用新的输出文件名。对于过时的版本,
检查时间线时间是否在附加前已更改。重复使用不确定编辑的请求 ID
并检查 session.receipt;job.wait 返回票据并不代表渲染完成。
此工作流在 Windows 和 Linux 上运行,使用外部 FFmpeg/ffprobe。如果需要语音识别, 则需要单独配置本地运行环境和模型。录制和硬件解码在 Linux 上没有后端。 该插件不捆绑任何引擎、字体、模型或媒体工具。