mcpField
S
skill-captions

skill-captions

github.com/pluviobyte创意与媒体1.7k178 次安装5 周前更新
代码仓库

关于 skill-captions

skill-captions 是用于视频字幕样式设计与渲染的 Skill,面向视频制作流程。它将字幕时间轴交由 ra-audio-to-subtitles 处理,专注于排版、预览、叠加渲染和质量检查。

主要功能

  1. 01使用既有字幕时间与质量检查结果
  2. 02支持 anchor-dark 和 anchor-light 样式
  3. 03生成渲染前的静帧预览
  4. 04渲染烧录字幕或透明字幕条
  5. 05验证渲染结果并归档报告
  6. 06保留无字幕母版与 SRT/VTT

适用场景

  1. 01为质检通过的视频渲染烧录字幕
  2. 02预览并检查字幕布局与画面安全区
  3. 03生成可复用的透明字幕条
  4. 04验证字幕成片并保存质检报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pluviobyte/rnskill --skill skill-captions

安装后在 Claude Code 中输入/skill-captions确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/
overlay.ffconcat
assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/
overlay.ffconcat
assets/styles/
anchor-dark.css
anchor-light.css
references/
layout-qc.md
style-anchor-dark.md
style-anchor-light.md
style-registry.json
timing-contract.md
scripts/
render_captions.py
validate_caption_render.py

详细介绍

技能-字幕

将字幕时间与字幕外观分开处理:

  • 由 ra-audio-to-subtitles 负责 ASR、短语分组、时间戳、SRT/VTT 和 caption-qc.json。
  • 由本技能负责字体排版、面板几何尺寸、固定锚点、预览、叠加渲染、烧录和渲染质检。
  • 绝不根据字符数、场景时长或 TTS 片段时长估算生产时间。

必需工作流

  1. 锁定最终旁白音频或最终合并视频。
  2. 运行 ra-audio-to-subtitles,除非项目已有 references/timing-contract.md 中描述的规范字幕素材。
  3. 要求 caption-qc.json 报告 status: pass。
  4. 从 references/style-registry.json 中选择一种样式。如果契约未指定其他样式,则使用 anchor-dark。
  5. 渲染完整视频前,先生成具有代表性的静帧预览。
  6. 根据 references/layout-qc.md 检查预览。
  7. 渲染带字幕的衍生视频。保留干净视频和通用 SRT/VTT。
  8. 运行 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,但 必须保留样式指标和固定锚点行为。

评论

支持 Markdown