关于 skill-captions
skill-captions 是用于视频字幕样式设计与渲染的 Skill,面向视频制作流程。它将字幕时间轴交由 ra-audio-to-subtitles 处理,专注于排版、预览、叠加渲染和质量检查。
主要功能
- 01使用既有字幕时间与质量检查结果
- 02支持 anchor-dark 和 anchor-light 样式
- 03生成渲染前的静帧预览
- 04渲染烧录字幕或透明字幕条
- 05验证渲染结果并归档报告
- 06保留无字幕母版与 SRT/VTT
适用场景
- 01为质检通过的视频渲染烧录字幕
- 02预览并检查字幕布局与画面安全区
- 03生成可复用的透明字幕条
- 04验证字幕成片并保存质检报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pluviobyte/ rnskill --skill skill-captions安装后在 Claude Code 中输入/skill-captions确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/overlay.ffconcatassets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/overlay.ffconcatassets/styles/anchor-dark.cssanchor-light.cssreferences/layout-qc.mdstyle-anchor-dark.mdstyle-anchor-light.mdstyle-registry.jsontiming-contract.mdscripts/render_captions.pyvalidate_caption_render.py详细介绍
技能-字幕
将字幕时间与字幕外观分开处理:
- 由
ra-audio-to-subtitles负责 ASR、短语分组、时间戳、SRT/VTT 和caption-qc.json。 - 由本技能负责字体排版、面板几何尺寸、固定锚点、预览、叠加渲染、烧录和渲染质检。
- 绝不根据字符数、场景时长或 TTS 片段时长估算生产时间。
必需工作流
- 锁定最终旁白音频或最终合并视频。
- 运行
ra-audio-to-subtitles,除非项目已有references/timing-contract.md中描述的规范字幕素材。 - 要求
caption-qc.json报告status: pass。 - 从
references/style-registry.json中选择一种样式。如果契约未指定其他样式,则使用anchor-dark。 - 渲染完整视频前,先生成具有代表性的静帧预览。
- 根据
references/layout-qc.md检查预览。 - 渲染带字幕的衍生视频。保留干净视频和通用 SRT/VTT。
- 运行
scripts/validate_caption_render.py并归档其 JSON 报告。
已注册样式
anchor-dark 还原了经批准的 Kimi K3 字幕样式:STHeiti Medium、暖白色文字、紧凑的炭灰色半透明圆角面板、无文字描边、无文字阴影、无大型面板阴影,以及固定的底部居中锚点。更改其参数前,请阅读 references/style-anchor-dark.md。
anchor-light 的字体排版、字号、内边距、宽度、底部锚点、行适配和分辨率缩放均与 anchor-dark 完全相同。仅表面样式不同:暖白色半透明面板搭配深色文字、精细边框和柔和的细微阴影。更改其参数前,请阅读 references/style-anchor-light.md。这是第二种已注册样式;anchor-dark 仍为默认样式。
所有 1080p 指标均按 target_height / 1080 缩放。渲染 4K 字幕时,使用其 1080p 尺寸的 2 倍;绝不放大栅格化的 1080p 字幕图层。
命令
预览已通过质检的项目:
python3 .claude/skills/skill-captions/scripts/render_captions.py \
final.mp4 media/captions/captions.json \
--qc media/captions/caption-qc.json \
--preview qc/caption-preview.png \
--preview-only
烧录默认样式:
python3 .claude/skills/skill-captions/scripts/render_captions.py \
final-clean.mp4 media/captions/captions.json \
--qc media/captions/caption-qc.json \
--out renders/final-captioned.mp4 \
--preview qc/caption-preview.png
烧录浅色半透明样式:
python3 .claude/skills/skill-captions/scripts/render_captions.py \
final-clean.mp4 media/captions/captions.json \
--qc media/captions/caption-qc.json \
--style anchor-light \
--out renders/final-captioned.mp4 \
--preview qc/caption-preview.png
跳过已包含烧录字幕的时间段:
python3 .claude/skills/skill-captions/scripts/render_captions.py \
final-clean.mp4 media/captions/captions.json \
--qc media/captions/caption-qc.json \
--exclude 0:23.936 \
--out renders/final-captioned.mp4
创建可重复使用的透明字幕带:
python3 .claude/skills/skill-captions/scripts/render_captions.py \
final-clean.mp4 media/captions/captions.json \
--qc media/captions/caption-qc.json \
--overlay-out renders/caption-band.mov
验证结果:
python3 .claude/skills/skill-captions/scripts/validate_caption_render.py \
--source final-clean.mp4 \
--render renders/final-captioned.mp4 \
--captions media/captions/captions.json \
--qc media/captions/caption-qc.json \
--out qc/caption-render-qc.json
硬性规则
- 仅使用最终音频/视频作为时间来源。
- 直接使用
captions.json中的开始/结束时间值。 - 字幕质检缺失或失败时,拒绝最终烧录。
- 保持固定的底部锚点。多行面板向上扩展。
- 字幕须位于画面内,并避开标题、UI、人脸和画中画。
- 保持英文模型/产品标记不变。
- 在所有渲染器之间保留一条规范字幕时间轴。
- 保留干净母版;烧录字幕的 MP4 是衍生文件。
- 对于新样式或有实质性改动的样式,完整渲染前先展示短预览。
- 除非用户明确要求使用单独的
embedded-captions路径,否则不要添加卡拉 OK 字幕、人物后方排版、VFX 字幕或动态主视觉文字。
集成契约
视频编排器应在 ra-audio-to-subtitles 之后调用本技能。
交接契约可将 caption_style 设为 anchor-dark 或 anchor-light;
否则使用 anchor-dark。
渲染器可在 Remotion 或 HyperFrames 中复现已注册的 CSS,但
必须保留样式指标和固定锚点行为。