mcpField
S
skill-captions

skill-captions

github.com/pluviobyteクリエイティブ・メディア1.7k178 回インストール5 週間前に更新
リポジトリ

skill-captions について

skill-captionsは、動画制作で字幕のスタイル設定とレンダリングを担うスキルです。タイミングや文字起こしはra-audio-to-subtitlesに任せ、レイアウト、プレビュー、合成、焼き込み、品質確認を行います。

主な機能

  1. 01既存の字幕タイミングとQC結果を使用
  2. 02anchor-darkとanchor-lightに対応
  3. 03レンダリング前に静止画をプレビュー
  4. 04字幕の焼き込みや透過字幕帯を出力
  5. 05レンダリングを検証しレポートを保存
  6. 06字幕なしのマスターとSRT/VTTを保持

活用シーン

  1. 01QC合格済み動画への字幕焼き込み
  2. 02字幕レイアウトと画面内配置のプレビュー
  3. 03再利用できる透過字幕帯の作成
  4. 04字幕入り動画の検証とQCレポート保存

インストール

コマンドをコピーしてターミナルで実行します。

$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

詳細

Skill-字幕

字幕のタイミングと見た目を分離します。

  • ASR、フレーズのグループ化、タイムスタンプ、SRT/VTT、caption-qc.json は ra-audio-to-subtitles に任せます。
  • タイポグラフィ、パネルの形状、固定アンカー、プレビュー、オーバーレイのレンダリング、焼き込み、レンダリングの QC はこのスキルが担当します。
  • 文字数、シーンの長さ、TTS のセグメント長から、本番用のタイミングを推定してはいけません。

必須ワークフロー

  1. 最終ナレーション音声または最終結合済み動画を確定します。
  2. プロジェクトに references/timing-contract.md に記載された正規の字幕アーティファクトがすでに存在する場合を除き、ra-audio-to-subtitles を実行します。
  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 を読んでください。これは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 を再現できますが、スタイルの寸法と固定アンカーの動作を維持する必要があります。

コメント