Communitygithub.com

johnnyfekete/video-tighten

DaVinci Resolve Studioのトーキングヘッドカットをタイトにします。各クリップ内の音声を測定し、自然なカットエッジを設定し、途切れた単語の終わりを救出し、長い間を短縮してBロールをリップルさせます。resolve-bridgeを通じて新しいタイムラインバージョンを生成します。

video-tighten とは?

このスキルは、DaVinci Resolve Studioでのトーキングヘッド(話し手の顔を中心に撮影した映像)の編集を自動的にタイトにするツールです。各クリップ内の音声を分析し、話し始めの前と話し終わりの後に自然な空気感(0.22秒と0.38秒)を残し、クリップの端が不自然に途切れている単語を最大0.5秒まで延長して救出し、クリップ内の長いポーズ(デフォルト0.75秒以上)を短く(0.3秒)します。また、Bロールのタイミングも新しい編集に合わせて自動調整し、短くなりすぎたBロールは削除します。このスキルは、resolve-bridgeとffmpegに依存し、最初にドライランでレポートを生成し、ユーザーと確認してから適用するワークフローを採用しています。フラグが立った問題は自動的にEDIT_CHECKLIST.mdに記録され、後で手動確認が必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-tighten

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

video-tighten は何をしますか?

このスキルには、resolve-bridgeスキルが隣にインストールされている必要があります(../resolve-bridge にあるか、RVS_BRIDGE で設定)。さらに ffmpeg が必要です。

ワークフロー

  1. 現在地を確認。 python3 <resolve-bridge>/scripts/rvs.py --workdir <フォルダ> status を実行します。まだ状態がない場合は、ユーザーがタイトにしたいタイムラインを採用します(resolve-bridgeを参照)。
  2. ドライラン。 Resolveには何も変更しません:
    python3 scripts/tighten.py --workdir <フォルダ>
    
    これにより、<フォルダ>/.edit/tighten/REPORT.md、report.json、plan.json が書き込まれます。
  3. ユーザーとレポートを確認します。 実行時間の変化、短縮されたポーズの数、すべてのフラグを表示します。フラグはスクリプトが修正できなかったカット(イン点より前に単語が始まり、その直前にも他の音声がある場合)を示すため、誰かが耳で確認するか、別のテイクを選ぶ必要があります。
  4. 意図的なポーズを保護します。 演技としての無音(間、パンチライン前の間、カメラに向かってタイピングするなど)はカットしてはいけません。ユーザーに確認し、--skip <クリップ名またはタイムライン開始フレーム> ... を付けて再実行します。
  5. 適用します。
    python3 scripts/tighten.py --workdir <フォルダ> --skip ... --apply
    
    これにより、<ベース>_vNN_tighten が作成され、以前のバージョンがアーカイブされ、プロジェクトが保存されます。すべてのフラグは EDIT_CHECKLIST.md に課題として作成され、新しいタイムライン内のクリップ名とタイムコードで特定されます。新しいタイムライン名と課題IDをユーザーに伝えます。

機能

項目デフォルト値オプション
最初の単語の前の空気感0.22秒--pre
最後の単語の後の空気感0.38秒--post
同じテイク内の無音部分への拡張(途切れた単語の救出)最大0.5秒--max-extend
他の音(息継ぎ、つぶやき、次のテイク)への最小距離0.08秒--guard
クリップ内のポーズがこれより長い場合…0.75秒--pause-max
…短縮後の長さ0.3秒--pause-keep
作成する最小のピース長0.5秒--min-piece
エッジのみ修正し、すべてのポーズを保持オフ--no-pauses
ダイアログ以外のオーディオトラック(音楽)なし--ignore-audio-tracks 3 4
  • 音声検出はエネルギー基準です(resolve-bridge/scripts/rvs_audio.py):閾値はソースファイル全体から決定され、強い閾値で単語が見つかり、そのエッジはソフトエンディングや付随する息継ぎを通して拡張されます。近接マイク録音に適しています。ノイズの多い環境では、フラグをより注意深く確認してください。
  • 短縮されたポーズはすべてジャンプカットになります(クリップが分割されます)。後で video-framing を実行して、インサートショットやBロールで隠すことができます。
  • リップル: 後続のクリップは前方に移動します。ビデオのみのアイテム(Bロール、オーバーレイ)は新しいタイミングに再マッピングされ、セクションが短くなった部分で短縮されます。0.5秒未満になるBロールは削除され、リストに表示されます。
  • モード: これは構造的なステップであるため、resolve-bridgeのbuildモードを使用します。現在のタイムライン上のタイトルやジェネレーターは引き継がれません(ブリッジが警告します)。グラフィックを追加する前にタイトを実行してください。

未対応

  • 重なり合うダイアログ(すでにタイムラインにあるJ/Lカット):該当クリップはそのまま残され、フラグが立てられます。
  • フィラーワード(「えーと」「つまり」)は文字起こしが必要です。今後のスキルで文字起こしと共に実装予定です。

関連スキル