skill-captions について
skill-captionsは、動画制作で字幕のスタイル設定とレンダリングを担うスキルです。タイミングや文字起こしはra-audio-to-subtitlesに任せ、レイアウト、プレビュー、合成、焼き込み、品質確認を行います。
主な機能
- 01既存の字幕タイミングとQC結果を使用
- 02anchor-darkとanchor-lightに対応
- 03レンダリング前に静止画をプレビュー
- 04字幕の焼き込みや透過字幕帯を出力
- 05レンダリングを検証しレポートを保存
- 06字幕なしのマスターとSRT/VTTを保持
活用シーン
- 01QC合格済み動画への字幕焼き込み
- 02字幕レイアウトと画面内配置のプレビュー
- 03再利用できる透過字幕帯の作成
- 04字幕入り動画の検証とQCレポート保存
インストール
コマンドをコピーしてターミナルで実行します。
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詳細
Skill-字幕
字幕のタイミングと見た目を分離します。
- ASR、フレーズのグループ化、タイムスタンプ、SRT/VTT、
caption-qc.jsonはra-audio-to-subtitlesに任せます。 - タイポグラフィ、パネルの形状、固定アンカー、プレビュー、オーバーレイのレンダリング、焼き込み、レンダリングの QC はこのスキルが担当します。
- 文字数、シーンの長さ、TTS のセグメント長から、本番用のタイミングを推定してはいけません。
必須ワークフロー
- 最終ナレーション音声または最終結合済み動画を確定します。
- プロジェクトに
references/timing-contract.mdに記載された正規の字幕アーティファクトがすでに存在する場合を除き、ra-audio-to-subtitlesを実行します。 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 を読んでください。これは2つ目の登録済みスタイルです。デフォルトは引き続き anchor-dark です。
1080p の各寸法は target_height / 1080 を掛けてスケーリングします。4K 字幕は1080pでの寸法の2倍でレンダリングします。ラスタライズ済みの1080p字幕レイヤーを拡大してはいけません。
コマンド
QCに合格したプロジェクトをプレビューします。
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の開始/終了値をそのまま使用します。- 字幕の QC が未実施、または不合格の場合は、最終的な焼き込みを拒否します。
- 下部の固定アンカーを維持します。複数行のパネルは上方向に広げます。
- 字幕はフレーム内に収め、タイトル、UI、顔、PiP と重ならないようにします。
- 英語のモデル名/製品名のトークンはそのまま維持します。
- レンダラー間で正規の字幕タイムラインを1つだけ維持します。
- 字幕なしのマスターを保持します。字幕を焼き込んだ MP4 は派生物です。
- 新規または大幅に変更したスタイルは、全体をレンダリングする前に短いプレビューを提示します。
- ユーザーが別の
embedded-captionsレーンを明示的に依頼しない限り、カラオケ字幕、人物の背後に配置するタイポグラフィ、VFX 字幕、アニメーション付きのヒーローワードを追加してはいけません。
連携契約
動画オーケストレーターは ra-audio-to-subtitles の後にこのスキルを呼び出します。
引き継ぎ契約では caption_style に anchor-dark または anchor-light を指定できます。それ以外の場合は anchor-dark を使用します。
レンダラーは Remotion または HyperFrames で登録済みの CSS を再現できますが、スタイルの寸法と固定アンカーの動作を維持する必要があります。