Communitygithub.com

web594/resolve-multicam-workflow

Claude Agent 技能:用於 DaVinci Resolve Studio 的音訊同步、基於 Whisper 轉錄的自動多機位剪輯、透過共享調色節點實現電影感調色、非破壞性模糊/抖動 QC 及角度切換、疊加標題。由 wunder-media 開發。

resolve-multicam-workflow 是什麼?

這是一個高度自動化的 Claude Agent 技能,專為 DaVinci Resolve Studio 設計,可處理從原始素材到完整多機位剪輯的整個後期製作流程。它整合了多種工具:使用 faster-whisper 語音轉錄、基於說話間隙自動生成剪輯計畫、透過 DRT(DaVinci Resolve 傳輸)檔案以程式化方式建立真正的多機位片段(而非透過 GUI),並套用統一的電影感調色節點鏈。該技能透過參考文件和 Python 腳本支援結構化的工作流程,以確保一致性,並解決常見陷阱,例如時間碼同步(AirGlu)、正確的多機位角度分配以及用於調色的共用節點管理。其目標是讓 Claude 能夠自主建立一個完全分級、帶有疊加標題的多機位剪輯,將使用者互動降至最低,同時保留最終調整的靈活性。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add web594/resolve-multicam-workflow

在你喜歡的 AI 中提問

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

說明文件

建立 Resolve 電影專案 (wunder-media)

來自專案 A → 專案 C → 專案 B 的經過驗證的流程。始終遵循此流程,不要重新發明輪子。 每個專案的工作目錄:C:\claude\resolve-prep\<短名稱>\。

先閱讀 (按此順序)

  1. references/ablauf.md — 從原始素材到包含標題的完整多機位剪輯的 8 個步驟。 之前未解決的「決定」現在已在上方的權限與固定回答中解答 — 無需再次詢問。
  2. references/api-werkzeuge.md — Resolve 可透過腳本執行的操作 (rctl.py、grade-set、 node-add、Fusion、標題範本) 以及 API 的硬性限制。
  3. references/fallstricke.md — 透過昂貴經驗學到的陷阱。在每個步驟之前快速檢查, 看是否有與當前步驟相關的內容。 這能避免大多數死胡同。
  4. ⭐ references/farbgebung.md — 使用哪種調色技能:預設為 resolve-kino-look-nodekette,備用為 resolve-lut-look-kette;優先使用購買的 LUT/工具; 以及攝影機檢查 (Rec.709 消費級攝影機 → 不進行或僅進行極小百分比的電影仿真)。 在每次調色前閱讀。 然後 references/kino-look-nodekette.md — 相同的鏈結作為帶有所有測量值 和 DRX 範本的配方 (整個鏈結只需 0.04 秒,而非一小時的點擊)。
  5. ⭐ references/vorbild-projekt.md — 多機位專案的參考:目錄結構、 媒體庫的目標狀態(包括 Bin Anlegen)、經過驗證的調色流程以及 Claude 與人類的界限。每個多機位專案都需閱讀 — 它精確描述了 Claude 可以自主達成的狀態。
  6. references/timecode-sync.md — 步驟 2 的變體:攝影機透過 Atomos AirGlu 運行並共享時間碼 → 偏移量直接來自檔案,而非 互相關。包含設備設定 (伺服器/用戶端、區域 Europe、 陷阱「來源卡在 HDMI」) 以及強制性的交叉驗證 vorlagen/tc_pruefen.py。 當原始素材來自 Shogun/Ninja Ultra 並包含時間碼時閱讀。
  7. references/grafik-einblendungen.md — 步驟 9:嵌入射影圖形/疊加層並 輸出影片 (YouTube 長版 + Instagram 短版)。在涉及重複發言人的演講/訪談系列 中,在建立圖形之前務必閱讀。
  8. vorlagen/ — 可立即執行的範本腳本 (來自專案 B,最乾淨的專案)。 複製到 C:\claude\resolve-prep\<短名稱>\,調整頂部常數,然後執行。 overlay_tools.py 可直接執行 (check / zoomsafe / mov / place)。

流程摘要

#步驟工具
1檢查原始素材 (ffprobe:攝影機、片段、fps、音訊通道、Log/Rec709)references/ablauf.md
2對齊主音訊 (Tascam/dr10L),偏移量儲存為 JSONvorlagen/sync.py
2b對於具有 AirGlu 的 Atomos 錄影機:直接從時間碼獲取偏移量,而不是互相關 — 事先使用 tc_pruefen.py 驗證references/timecode-sync.md,vorlagen/tc_pruefen.py
3建立專案 + Bins + 匯入 + 每個攝影機的來源時間軸vorlagen/prep.py
4語音轉錄 (faster-whisper large-v3,CUDA)vorlagen/transcribe.py
5根據說話間隙自動產生剪輯計畫 (穩健的參數,見下文)vorlagen/make_cutplan.py
6剪輯時間軸。對於 ≥ 2 個攝影機,始終使用帶有剪輯的多機位 — 透過 DRT 建構多機位片段,而不是透過 GUIvorlagen/mcbuild/build_mc_drt.py
6b音訊-視訊檢查 (強制性): 剪輯時間軸相對於音訊時間是壓縮的 (跳過沒有畫面的部分) — 分割音訊,然後測量vorlagen/sync_pruefen.py
7驗證 (間隙、重疊、角度、黑場渲染),然後調色 (技能 resolve-kino-look-nodekette,共用節點)vorlagen/verify_cut.py,references/farbgebung.md
8後期處理:找到正確的開頭,移除組織性內容,替換模糊/抖動的角度;標題開場 (疊加層)references/ablauf.md
8b清理 + 交接: 將中間時間軸放入 Bin Anlegen,根據參考檢查目標狀態references/vorbild-projekt.md
9圖形疊加 + 輸出 (來自轉錄的資訊圖形,Instagram 短版 9:16,字幕,−14 LUFS)references/grafik-einblendungen.md,vorlagen/overlay_tools.py,vorlagen/infografik/,vorlagen/verify_overlays.py,vorlagen/instagram_kurz.py

始終前提: Resolve 正在執行,設定 → 系統 → 一般 → 「外部腳本」= 本地。如果 scriptapp("Resolve") is None → 完全重新啟動 Resolve。

⛔ 不要忘記:多機位完全透過腳本建立 — 絕不用滑鼠

使用者指示 (2026 年 7 月 27 日,明確要求):此知識不得再次丟失, 且必須以此方式執行,不得有其他方式。 此技能的早期版本聲稱, 多機位片段「只能在 GUI 中手動操作」。這是錯誤的。 它使用 vorlagen/mcbuild/build_mc_drt.py → import_mc2.py → verify_mc.py 建構 (2026 年 7 月 27 日驗證, Resolve 21.0.3:多機位片段 + 21 個已剪輯的角度,無需一次點擊)。

方法的簡要說明 (詳細資訊請參閱 references/ablauf.md 步驟 6):

  1. 建立嵌套的剪輯時間軸 (apply_cut.py) 並將其匯出為 DRT (Timeline.Export(path, 1))。
  2. 從任何包含多機位的舊專案匯出一個 DRT 作為範本。
  3. build_mc_drt.py 將 <Sm2MpMulticamClip> 元素 + 一個定義 SeqContainer (每個攝影機一個軌道,UserDefinedName = "Angle N", MediaRef = 來源時間軸的 DbId) 插入新的 DRT,並將剪輯片段指向多機位。
  4. ImportTimelineFromFile → 完成的多機位剪輯時間軸。

⭐⭐ 導致失敗的單一陷阱: 多機位序列 → 定義容器 的映射 不在純文字 XML 中,而是以 UTF-16 編碼在 MpFolder.xml 的 zstd FieldsBlob 中。 因此永遠不要產生新的 UUID — 從範本中不變地採用多機位元素、序列和容器的 DbId (Resolve 在匯入時無論如何都會分配新的 ID)。否則會建立一個多機位片段 沒有角度:Frames 0,黑畫面。

權限與固定回答 — 不再詢問

使用者已決定;Claude 無需詢問即可執行,並自主地將專案建立到 包含標題的完成、分級的多機位剪輯。

立即取得權限 (不要逐一詢問):

  • 同時解鎖電腦使用:request_access(["DaVinci Resolve"]),原因為「控制 Resolve (多機位、調色、標題)」。涵蓋整個流程;僅在出現額外程式時再次詢問。 必要時使用 open_application 啟動 Resolve。
  • 腳本執行/檢查透過 Bash + py C:\claude\resolve-ctl\rctl.py … 和範本腳本進行 — 這是一部分,直接執行 (無需詢問)。
  • 媒體離線 (專案建立在另一個磁碟上,例如 E:→F:)?無需詢問重新連結: mp.RelinkClips(clips, r"<目前磁碟上的專案資料夾>")。

固定的技術性答案 (永遠不再詢問): 0. 剪輯節奏:比之前稍微平穩 (使用者,2026 年 7 月 27 日)。在專案 A 中,有些 剪輯來得太早:剪輯後,觀眾需要幾秒鐘來適應新畫面 — 如果接著又是一個 短暫的反角度剪輯,會顯得很匆忙。每個鏡頭多幾秒鐘就足夠了。make_cutplan.py 中的值: MIN_SHOT 6.0,CUT_MIN 6.0,CUT_MAX 11.0,PARA_GAP 1.2,MAX_STD 50,CALM_GAP 12.0 (冷靜暫停:cutaway 後這麼久才開新鏡頭),機械分割 55/42/10。 此外:第一個 span 始終是主攝影機 且 在內容開始之前沒有 cutaway (ANFANG),否則在影片開始後立即出現剪輯。

  1. ≥ 2 個攝影機 → 始終提供已剪輯的多機位 (真正的多機位片段透過 DRT 建構, vorlagen/mcbuild/),以便使用者在編輯時可以將每個片段切換到不同的攝影機。 不要再問「巢狀或多機位」。 ⭐⭐ 這也適用於任何衍生的影片 — 摘要、片段、工作副本、 Instagram 版本 (使用者,2026 年 8 月 23 日,明確要求):它們必須是帶有主剪輯角度的真正多機位時間軸, 否則使用者在精修時無法再交換鏡頭。⛔ 使用 AppendToTimeline 搭配多機位片段還不夠 — 這樣雖然多機位片段會進入目標時間軸,但全部在角度 1 上;角度選擇丟失了。角度 僅存在於片段的 FieldsBlob 中,且無法透過 API 設定。正確的方法: vorlagen/kurzvideo_drt.py + vorlagen/kurzvideo_import.py (將主剪輯匯出為 DRT, 以不變的 FieldsBlob 採用所需部分的片段,重新計算 Start/Duration/In, 匯入;之後音訊透過 API 逐段設定為 A1)。調色會隨 DRT 一起帶入。 1b. ⭐⭐ 播放幀率 = 時間軸幀率 — 在建立時立即設定 (使用者, 2026 年 8 月 23 日)。proj.SetSetting("timelinePlaybackFrameRate", "<fps>") 屬於與 timelineFrameRate 相同的設定區塊,在第一個時間軸建立之前。如果設定錯誤 (預設通常為 24),播放時音訊會聽起來很糟 — 而且一旦專案中有時間軸, SetSetting 會拒絕更改 (False,即使在時間軸層級也是如此)。在介面中仍然可以: 右下角的齒輪 → 主要設定 → 時間軸格式 → 輸入「播放幀率」→ 儲存。在建立時一併設定可省去這個麻煩。
  2. 調色 — 預設值已確定,不要詢問方向,直接建立 (使用者, 2026 年 8 月 18 日)。詳細資訊和攝影機檢查:references/farbgebung.md。
    • ⭐ 預設:技能 resolve-kino-look-nodekette — 4 個節點鏈結: 電影仿真 → 白平衡+亮度 (可調整) → 完成 LUT (40%) → 電影感產生器 (光暈/暗角)。完全可透過 DRX 轉移 (0.04 秒)。 需要專案設定為 DaVinci YRGB (非 Color Managed)。
    • 備用:技能 resolve-lut-look-kette — 相同概念作為純 LUT 鏈結 (Log→ARRI Rec.709 · 可調整節點 · Rec.709→ARRI LogC · 電影仿真 · 電影感)。 在缺少外掛程式/不符合攝影機、一系列已基於它建立時,或使用者希望時使用。
    • 在兩種鏈結中,首先使用已購買的 LUT 和工具;只有在缺少工具或 攝影機在外掛程式中沒有設定檔時,才使用免費版本。
    • ⚠️ 在建立之前檢查專案中有哪些攝影機。 Log 素材 (FS7 II, S-Log3) → 按預期使用鏈結。Rec.709 消費級攝影機 (Sony AX100、CX900E 和 類似型號) → 不進行或僅進行極小百分比的電影仿真,否則顏色會變得不自然; 透過其他節點獲得電影感。 → 始終建立節點鏈結,無需詢問。僅需確認微調的亮度。
  3. LUT 僅用於這三個調色步驟。 每個校正 (白平衡、亮度、色偏/ 洋紅/藍色、飽和度、對比度) 作為可調整的 Resolve 節點值,永遠不要作為額外的預設 LUT — 以便保持可追溯性,了解哪些偏離了原始內容,並且可以還原單個值。
  4. ⭐ 跨攝影機的相同節點內容 = 共用節點:將相同的調色 節點 (ARWI 轉換、底片、電影感) 建立為共用節點,以便一個更改會影響所有片段/攝影機。 僅攝影機特定的校正 (例如,從遠到近的匹配) 保持本地。詳細資訊請參閱 references/ablauf.md/fallstricke.md。 4b. ⭐⭐ 白平衡節點:每個角度一個共用節點 — 始終這樣建立 (使用者, 2026 年 8 月 24 日,明確要求「請永遠記住」)。可調整的節點 2 (「白平衡 + 亮度」) 是每個角度建立一個共用節點,套用於 該角度的所有片段 — 這樣一個校正會一次更改整個角度。 它不跨角度共用 (每個角度都有自己的值)。 調色節點 1/3/4 無論如何都是共用的。 配方 (2026 年 8 月 24 日在專案 M 上驗證,3 個角度 × 21/22 個片段):
    1. 進入角度的 … import 時間軸,導覽到一個參考片段 (SetCurrentTimeline + SetCurrentTimecode,OpenPage("color"))。
    2. 一次電腦使用點擊: 右鍵點擊節點 2 → 「儲存為共用節點」。(API 無法做到這一點;一次點擊是可接受的。)
    3. 其餘部分透過腳本完成:refItem.CopyGrades(該角度的所有其他片段) — CopyGrades 會將共用節點轉移為相同物件,標籤在所有地方都會變成 … Shared Node <n>。這也跨時間軸適用:當 DRX 匯入 短片時建立的複製角度時間軸 (… nah import 1…12) 需要 同時處理,否則短片會連結到舊的、未同步的調色。
    4. 檢查:讀取節點標籤 (全部相同?) 並測量每個角度的一個影格。
    5. 同時完成: 將 LUT 插值設定為四面體 — Shift+9 → Color Management → 「Look-up-Tables」 → 「3D-LUT-Interpolation」 → 儲存 (無 API 金鑰)。

4c. ⭐ 最後刪除未使用的共用節點副本 (使用者,2026 年 8 月 27 日,永遠)。 每次套用包含共用節點的 DRX/調色鏈結時,都會在共用節點清單中 建立一個新條目,而不是使用現有的 — 如果逐片段套用,則每個片段產生一個副本 (專案 M:198 個條目,其中只有 12 個被使用,186 個是廢棄條目, 所有位元組都相同)。畫面看起來正確,但清單變得無法使用,且專案資料庫會增長。

  • 避免: 一次性套用鏈結到所有選取的片段 (vorlagen/grade-set apply … --all) — 僅建立一個共用節點副本。
  • 清理現有項目: vorlagen/grade-set cleanup — 掃描所有時間軸, 刪除未被任何片段引用的共用節點。在應用任何包含共用節點的 DRX/鏈結後執行。

相關技能