video-production について
video-productionは、環境確認や企画からレンダリング、レビューまでの動画制作工程を調整するスキルです。関連スキルとスクリプトを順序立てて実行し、承認、費用、品質を確認します。
主な機能
- 01複数段階の動画制作パイプラインを調整
- 02素材探しの前に環境を確認
- 03費用発生前に仮素材のレイアウトを確認
- 04素材解決とレンダリングを順序化
- 05技術検査とフレーム確認で出力を検証
- 06候補画像からサムネイルを選定
活用シーン
- 01フォーマット選択から書き出しまでの動画制作を調整
- 02素材や生成への支払い前にレイアウトを確認
- 03計画に照らしてレンダリングを検査し、フレームを確認
- 04コンタクトシートからサムネイルを選択
MCP 対応
スクリプトと他のスキルを順序立てて調整するエージェントスキルです。READMEにはMCPサーバーまたはクライアントとしての説明はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scrollmark/ social-skills --skill video-productionインストール後、Claude Code で/video-productionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/hard-rules.mdrun-mechanics.mdscripts/doctor.pynormalize_audio.pyposter.pyqc_render.py詳細
動画制作
あなたがパイプラインです。 ステージ、チェックポイント、イベントストリームはありません。スクリプトの実行順を決め、判断が必要な場面でユーザーに確認し、出力をゲートします。ほかの動画スキルはそれぞれ1つのステップを担当し、このスキルは実行順と、実行全体を通してのみ意味を持つルールを担当します。
必要なもの
4つのスクリプトがこのスキルに同梱されています。scripts/doctor.py(ステップ0のステータスレポート)、scripts/normalize_audio.py(ステップ7のラウドネス調整)、scripts/qc_render.py(ステップ8のゲート)、scripts/poster.py(ステップ9のサムネイル候補の絞り込み)です。すべて標準ライブラリのみを使用し、ffmpeg/ffprobe が必要です。
シーケンスの残りには pip install 'video-studio-engine @ https://github.com/scrollmark/social-skills/archive/refs/heads/master.tar.gz' が必要です。video-studio setup(ステップ0のインストール計画)、build_props(ステップ5と7)、studio(プレビューエディター)、preflight(レンダーゲート)に加え、2つのバックエンドのどちらかを制御する render が含まれます。デフォルトは Scrollmark エディターの scrollmark build + scrollmark render で、npx @scrollmark/cli でインストールします。ライセンスは不要で、パッケージにエディターが含まれているため、クローンも Studio の事前起動も不要です。--backend remotion でもコンポーザーに到達しますが、Node と別途ライセンスが必要です。また、エディターでは対応していない3つのエフェクトと、単語ごとのキャプション強調表示をレンダリングします。素材の調達、音声、エクスポートは以下に記載の各ステップスキルが担当し、それぞれ独自のインストール手順があります。
pip のインストールを省略しても、このスキルは単独では動作しません。エンジン全体を制御するためです。 props ドキュメントもプレビューもプリフライトもないため、シーケンスを組み立てられません。それでも残るのは、どの判断を先に行うべきか、実行のどこで費用と無音が生じるかという全体像です。
パイプライン
| # | ステップ | 担当 |
|---|---|---|
| 0 | マシンを確認し、修正を提案する。インストール前に確認する | studio-setup |
| 1 | formats/*.md を列挙し、選択肢として提示して、選ばれたものだけを読み込む | video-formats |
| 2 | そのフォーマットのインタビューを実施する。1ラウンドあたり最大4問 | agent-interview |
| 3 | 素材の調達を引き出す。映像素材と音声を同じラウンドで確認する | media-acquisition、audio-acquisition |
| 4 | フォーマットの文法に基づいてストーリーボードを作成する | video-formats |
| 5 | video-studio build_props --placeholders を実行し、エディターを開いて、props.json を再読み込みする | ここ |
| 6 | 素材を解決する。まず TTS、次に映像素材。その後 video-studio verify_clips を実行する | audio-acquisition、media-acquisition |
| 7 | video-studio build_props(フラグなし)→ video-studio preflight → video-studio render → scripts/normalize_audio.py | ここ |
| 8 | レンダーとその計画を照合する scripts/qc_render.py を実行し、フレームを取り出して確認する | ここ |
| 9 | scripts/poster.py でサムネイルを選び、候補シートを開く | ここ |
ブランドキット(brand-kit)はステップ4で適用します。人間のエディターへのエクスポート(edit-handoff)と、被写体の合成(subject-compositing)は、それぞれステップ7と6から分岐するもので、追加のステップではありません。各ステップの詳細な仕組みと正確な呼び出し方法は references/run-mechanics.md に記載されています。
シーケンスのルール
scripts/doctor.pyは、ソースの提示より先にステップ 3 で実行します。 キーがないままソースを提示すると、ユーザーのターンを無駄にするだけでなく、コスト見積もりも誤ります。- 支出が発生する前は、プレースホルダーのプレビューをデフォルトにします。 ステップ 5 は無料で、レイアウトの誤りを修正できるうちに見つけられます。
--placeholdersが登場するのはここだけで、実行中のほかの箇所にはありません。ユーザーによるprops.jsonの編集内容を正とし、編集が終わったら再読み込みしてください。 - 最初の有料呼び出しの前と最後の呼び出しの後に、合計コストを伝えてください。
- レンダリングのたびに直前に props を再構築し、プリフライトを絶対に省略しないでください。 どちらも Remotion バックエンドに属します。エディターのバックエンドには props ファイルもプリフライトもなく、ゲートとなるのは、ソースを解決できないストーリーボードに対して
scrollmark buildが処理を拒否することです。 - レンダリング結果のフレームを確認せずに、レンダリング完了と宣言しないでください。 「レンダリングされた」と「正しくできている」は別の主張であり、ログに残るのはそのうち片方だけです。
2 つの契約
ソース。 ストーリーボードで各レイヤーに選んだソースを、prompt:(生成)/find:(ライセンス付き検索)/url:(ユーザーのリンク)/file:(ユーザーのパス)として記録します。1 つの動画でこれら 4 種類すべてを使うこともよくあります。
パス。 各ソースの解決先は、project/clips/<sceneId>-<layerId>.<ext> の 1 か所だけです。build_props が読み取るのはこのパスだけで、ファイルは自動的に composer/public/ にコピーされます。ファイルを手動で composer/public/clips/ に置いても機能しません。build_props はそこを参照せず、プレースホルダーを使うかエラーになります。
1 台のマシン、複数のエージェント
各プロジェクトはそれぞれ独自の props ファイル、メディアディレクトリを持ち、独自のコンポジションを登録するため、コンテンツが衝突することはありません。ただし、ポートは共有します。エディターは必ず video-studio studio --project <dir> で開き、直接開かないでください。 そうしないと、2 つ目のエージェントが気付かないまま 1 つ目のエージェントのエディターに接続し、両方が同じプロジェクトを見ることになります。表示された url をそのままユーザーに渡してください。URL の末尾にはコンポジション ID が含まれています。localhost:<port> だけを指定すると、生成されたレジストリで最初に列挙されるコンポジションが開きます。アルファベット順なので、毎回同じものです。claim、--status、--release --port の仕組みについては references/run-mechanics.md を参照してください。
レンダリング前に読むもの
references/hard-rules.md には、コストのかかる経験から得られたルールが記載されています。プレースホルダーを含むレンダリングの落とし穴、時計のルール、コスト表、レンダラー側の composer に関する注意点です。ステップ 7 を始める前に必ず読んでください。
ステップ 8:ゲートの対象と対象外
scripts/qc_render.py --video <render> --plan project/plan.json は、build_props が書き込んだプランとファイルを照合します。確認項目は、長さ、プラン自体の整合性、黒い末尾、静止した終端、そして --storyboard を指定した場合は解像度と fps です。
終了コードが 0 以外になるため、ゲートとして使用できます。フレームのデコードは行いません。すべてのレンダリング結果に対して実行してください。
より厳密なゲートでは、フレームもデコードします。video-studio qc_analyze --video <render> --project <dir> を実行すると、ぼけ、パレット外の色、カット位置、キャプションのタイミングに加え、モデルの追加機能による予定した被写体のチェックも行われます。[qc] が必要です。レンダリング結果に予想外の点があるときや、クライアントに納品する前に使用してください。
どちらのゲートも、動画を作る価値があったかどうかは判断しません。ゲートは 2 段階で行います。チェッカーを実行し、次に scripts/poster.py を実行してコンタクトシートを開き、何をしたのかを伝えてください。その日の成果を報告するには、video-studio daily_digest を使うと、git log と runs/<date>/ ツリーからチャットに貼れる長さのプレーンテキストが作成されます。
アンチパターン
- レイアウトの承認前にソースを探す。 ステップ 5 は無料ですが、ステップ 6 は有料です。
- プレースホルダーを含むビルドをレンダリングする。 完成したように見えますが、実際は色付きのボックスです。
- 前回のビルドに問題がなかったからとプリフライトを省略する。 プリフライトが確認するのはグローバルファイルです。そのファイルは、前回のビルド以降に別のプロジェクトが上書きしている可能性があります。
- ステップ 0 で問題がないことを語る。 不足がなければ何も言わず、作業を続けてください。
- リグレッションを脚注のように報告する。 前のバージョンより悪い結果は発見事項です。修正して再レンダリングするループを 1 回提案し、その後は止めてください。