Communitygithub.com

johnnyfekete/video-organize

組織原始錄影素材,用於有腳本的影片製作。本工具會在本地轉錄每段錄影,找出每個鏡次並對應到分鏡場景,評估完整性、斷詞與音訊品質,讀取片場的通過/不通過判定,建議最佳鏡次或兩個鏡次的拼接方案,將 B-roll 與分鏡表中的 B-roll 註記進行編目,寫入 TAKES.md,並提供以影片風格重新命名的功能(例如 S02A_T03_original)。適合在新素材送達、使用者想要整理、比較或挑選鏡次、想了解哪些場景尚無可用鏡次,或要求重新命名片段時使用。

video-organize 是什麼?

video-organize 是一個用於整理原始錄影素材的 AI 代理技能,專為有腳本的影片後製流程設計。它會在本機轉錄每段錄影,自動將每個鏡次與分鏡場景比對,並根據劇本內容、語音清晰度與片場現場判定進行評分(0 至 100 分),協助使用者找出最佳鏡次或建議由兩個鏡次拼接修補。此技能支援 Claude Code 等基於終端機的 AI 代理,也可在 Cursor 或 Codex 等編輯器環境中運作。它依賴 resolve-bridge 技能、ffmpeg 以及一個轉錄器(本機 Whisper 或自訂命令),並可與 Resolve 專案互動以檢查已使用的片段。運作流程包括:設定檢查、統計素材、執行轉錄與比對、讓使用者協助描述 B-roll 畫面、回答鏡次設定的問題、顯示 TAKES.md 報告、處理使用者手動選擇的鏡次,以及最後的安全重新命名。所有原始檔案都不會被移動或覆寫,確保資料安全。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-organize

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

video-organize 是做什麼的?

請在 video-setup 之後、video-assemble 之前執行此技能。它不需要時間軸,且可在 Resolve 關閉時運作。需要安裝 resolve-bridge 技能於此技能旁(或設定 RVS_BRIDGE)、ffmpeg,以及 uv(用於本機 Whisper)或 RVS_TRANSCRIBE_CMD 中的轉錄命令。

以 python3 <此技能資料夾>/scripts/organize.py --workdir <資料夾> <命令> 執行腳本。

分鏡表格式

純 Markdown,每個場景一個區塊。場景 ID 來自標題。

## S01
Setup: counter top

Let me start with a confession: AI helped me plan this video.

## S03
Voiceover: yes
B-roll: showing AI researching something funny

Setup、Voiceover 和 B-roll 為選用。區塊中的其他內容皆為口白文字。僅包含 B-roll: 的區塊則為純 B-roll 場景。若腳本沒有標題,則每個段落視為一個場景。若完全沒有分鏡表,則鏡次會依相似文字分組(G01、G02),並在 TAKES.md 頂端顯示警告,且不會有劇本評分或重新命名選項。

工作流程

  1. 設定檢查。 執行 video-setup 的 check。若未記錄分鏡表,它會發出警告,且 .edit/config.json 應包含 storyboard、approve_phrases 和 reject_phrases(舊版的 phrases 清單只會顯示為備註:詢問哪些片語是通過、哪些是不通過,並以 setup.py write 儲存)。
  2. 先統計。 詢問素材資料夾,然後執行:
    python3 scripts/organize.py --workdir <資料夾> run --footage <素材資料夾> [--storyboard FILE] [--every 2]
    
    未加上 --yes 時,此命令會顯示統計數字(錄影數量、時長、場景數)並停止。向使用者確認資料夾是否正確。
  3. 執行。
    python3 scripts/organize.py --workdir <資料夾> run --footage <素材資料夾> --yes
    
    轉錄(已轉錄且未改變的錄影會跳過)、找出並評分鏡次、擷取 B-roll 幀、寫入 TAKES.md 並記錄問題(無可用鏡次的場景、未拍攝的 B-roll、無人能修補的斷句)。
  4. 你的任務:描述 B-roll。 執行後會列出每個 B-roll 錄影的幀資料夾(每個取樣一張 JPEG,第 N 幀位於 N × every 秒)。針對每個資料夾:
    • 開啟幀並描述畫面上顯示的內容,按時間戳記;
    • 將描述與分鏡表的 B-roll: 註記比對:場景、開始時間、結束時間及原因;
    • 寫入承載資料,然後記錄它:
      {"<錄影路徑>": {"frames": {"0": "一個人在打字", "2": "螢幕特寫"},
                      "matches": [{"scene": "S04", "start": 2, "end": 6, "why": "螢幕特寫"}]}}
      
      python3 scripts/organize.py --workdir <資料夾> describe payload.json
      
    只描述你能看到的內容。不要憑空捏造比對結果。
  5. 你的任務:鏡次代號問題。 當執行腳本無法判斷某個場景的兩個檔案是否為同一攝影機設定時,它會列出一個包含幀差異的問題。詢問使用者,然後記錄每個答案:
    python3 scripts/organize.py --workdir <資料夾> answer S02 <檔案> B
    
  6. 顯示 TAKES.md。 每個場景一個章節,首先顯示建議的鏡次及其分數和原因、修補方案(標示兩個鏡次 ID,總是建議)、未配對的片段以及沒有鏡次的場景。向使用者朗讀問題。
  7. 修正。 當使用者偏好另一個鏡次(例如「使用 S02A-T03」):
    python3 scripts/organize.py --workdir <資料夾> pick S02A-T03
    
    使用者選擇的鏡次會保留至重新執行。report 會重新寫入 TAKES.md 而不更改其他內容。
  8. 重新命名。 由 organize.py rename 提供(先顯示提案,使用者批准完整清單後才加上 --apply,--undo 可還原)。顯示完整的舊名對新名清單,僅在明確同意時才套用。請勿以任何其他方式重新命名。已放置在開啟的 Resolve 專案時間軸上的片段會被跳過並列出原因,因為重新連結已使用的片段可能會失去其剪輯和調色;如有需要,請在 Resolve 中手動重新命名這些片段。如果專案包含複合片段、多機片段或 Fusion 片段(其內容無法列出),則所有已匯入的片段都會被跳過。--apply 只會套用最後顯示的提案,如果提案變更則拒絕執行。在 Resolve 關閉時,--apply 和 --undo 需要 --never-imported(素材從未匯入);如果 Resolve 開啟,仍會檢查已使用的片段。
  9. 完成。 執行腳本會記錄 organize 步驟本身,因此無需再記錄其他事項。指向 video-assemble(尚未建置)作為下一個步驟。

命名

情況名稱
TAKES.md 中的鏡次 IDS02A-T03
單一鏡次的檔案S02A_T03_IMG_5419.MOV
同一個鏡頭有多個鏡次的檔案S02A_T01-T03_IMG_5420.MOV
包含多個場景的檔案S03A_S05A_S06A_IMG_5422.MOV
場景的第二攝影機設定S02B_T01_IMG_5430.MOV

每個鏡頭都有一個字母。不同的字母代表不同的攝影機設定,而非重拍。B-roll 和未配對的檔案會保留原名。

規則

  • 原始素材絕不會被移動或覆寫。僅透過核准的 rename 進行重新命名。
  • 評分範圍為 0 至 100 分,且總是顯示原因。片場的不通過判定優先於分數,而通過判定則排在首位。旁白場景主要以聲音品質判斷。
  • 修補方案會在自然停頓處替換至少一個完整的想法剪輯點,絕不會只替換單一詞彙。
  • 工作檔案存放在 <資料夾>/.edit/organize/ 中(請勿手動編輯)。video-assemble 只會讀取這些檔案。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能