Communitygithub.com

web594/resolve-multicam-workflow

为 DaVinci Resolve Studio 设计的 Claude 智能体技能:音频同步、基于 Whisper 转录的自动多机位剪辑、通过共享色彩组节点实现电影级调色、非破坏性模糊/抖动质量控制以及角度切换、叠加标题。由 wunder-media 开发。

resolve-multicam-workflow 是什么?

此智能体技能为 DaVinci Resolve Studio 提供完整的自动化多机位后期制作流水线。它专为 Claude 智能体设计,通过八步工作流程(从原始素材检查到最终输出)自动完成音频同步、基于 faster-whisper 转录的自动剪辑规划、多机位时间线构建、电影感调色以及图形叠加。其突破性功能在于完全通过脚本创建多机位剪辑,利用 DRT 文件操作和 XML 解析而非 GUI,颠覆了传统认知。技能包含强大的验证步骤(同步检查、黑场渲染、模糊/抖动角度切换)以及可复用的参考模板库(sync.py、prep.py、transcribe.py、verify_cut.py),支持 Atomos AirGlu 时间码设备和 Tascam/DR10L 录音机。输出格式涵盖 YouTube 长视频和 Instagram 短视频(带 9:16 裁剪和 -14 LUFS 响度标准)。所有操作遵循预定义的色彩分级策略(resolve-kino-look-nodekette 或 resolve-lut-look-kette),通过共享色彩组节点确保多机位镜头间色彩一致。

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Resolve-Filmprojekt anlegen (wunder-media)

Bewährte Pipeline aus den Projekten Projekt-A → Projekt-C → Projekt-B. Immer diesen Ablauf nehmen, nicht neu erfinden. Arbeitsordner pro Projekt: C:\claude\resolve-prep\<kurzname>.

Zuerst lesen (in dieser Reihenfolge)

  1. references/ablauf.md — die 8 Schritte von Rohdaten bis fertigem Multicam-Schnitt mit Titel. Die früher offenen „Entscheidungen" sind jetzt oben in Berechtigungen & stehende Antworten beantwortet — nicht erneut erfragen.
  2. references/api-werkzeuge.md — was Resolve per Skript kann (rctl.py, grade-set, node-add, Fusion, Titel-Vorlage) und wo die harten API-Grenzen sind.
  3. references/fallstricke.md — teuer erlernte Fallen. Vor jedem Schritt kurz prüfen, ob dort etwas zum aktuellen Schritt steht. Das spart die meisten Sackgassen.
  4. ⭐ references/farbgebung.md — welcher Look-Skill genommen wird: Standard ist resolve-kino-look-nodekette, Ersatz ist resolve-lut-look-kette; gekaufte LUTs/Werkzeuge zuerst; und die Kamera-Prüfung (Rec.709-Consumer-Camcorder → Filmemulation gar nicht oder nur ganz wenig %). Vor jedem Grading lesen. Danach references/kino-look-nodekette.md — dieselbe Kette als Rezept mit allen gemessenen Werten und der DRX-Vorlage (ganze Kette in 0,04 s statt einer Stunde Klicken).
  5. ⭐ references/vorbild-projekt.md — das Vorbild für Multicam-Projekte: Ordnerbau, Soll-Zustand der Mediathek (inkl. Bin Anlegen), der bewährte Farb-Ablauf und die Grenze Claude ↔ Mensch. Bei jedem Multicam-Projekt lesen — beschreibt genau den Stand, bis zu dem Claude selbstständig anlegt.
  6. references/timecode-sync.md — Variante zu Schritt 2: Kameras laufen über Atomos AirGlu mit gemeinsamem Timecode → Offsets direkt aus den Dateien statt Kreuzkorrelation. Enthält die Geräte-Einrichtung (Server/Client, Region Europe, die Falle „Source hängt auf HDMI") und die Pflicht-Gegenprobe vorlagen/tc_pruefen.py. Lesen, wenn die Rohdaten von Shogun/Ninja Ultra kommen und Timecode tragen.
  7. references/grafik-einblendungen.md — Schritt 9: Infografiken/Overlays einbauen und das Video ausliefern (YouTube-Lang + Instagram-Kurz). Bei Vortrags-/Interview-Reihen mit wiederkehrendem Referenten immer lesen, bevor Grafiken gebaut werden.
  8. vorlagen/ — lauffähige Vorlagen-Skripte (aus Projekt-B, dem saubersten Projekt). Kopieren nach C:\claude\resolve-prep\<kurzname>\, Kopf-Konstanten anpassen, laufen lassen. overlay_tools.py läuft direkt (check / zoomsafe / mov / place).

Kurzfassung des Ablaufs

#SchrittWerkzeug
1Rohdaten sichten (ffprobe: Kameras, Teile, fps, Ton-Kanäle, Log/Rec709)references/ablauf.md
2Ton-Sync gegen Hauptton (Tascam/dr10L), Offsets als JSONvorlagen/sync.py
2bBei Atomos-Rekordern mit AirGlu: Offsets direkt aus dem Timecode statt Kreuzkorrelation — vorher mit tc_pruefen.py belegenreferences/timecode-sync.md, vorlagen/tc_pruefen.py
3Projekt + Bins + Import + Quell-Timeline je Kameravorlagen/prep.py
4Transkript (faster-whisper large-v3, CUDA)vorlagen/transcribe.py
5Auto-Schnittplan aus Sprechpausen (ruhige Parameter, s. u.)vorlagen/make_cutplan.py
6Schnitt-Timeline. Bei ≥2 Kameras IMMER Multicam-mit-Schnitten — Multicam-Clip per DRT-Bau, NICHT per GUIvorlagen/mcbuild/build_mc_drt.py
6bBild-Ton-Probe (Pflicht): die Schnitt-Timeline ist gegenueber der Tonzeit GESTAUCHT (uebersprungene Stellen ohne Bild) - Ton stueckeln, dann messenvorlagen/sync_pruefen.py
7Verifizieren (Lücken, Überlappungen, Winkel, Schwarzbild-Render), dann Grading (Skill resolve-kino-look-nodekette, geteilte Nodes)vorlagen/verify_cut.py, references/farbgebung.md
8Nachbearbeiten: richtigen Anfang finden, Organisatorisches raus, verwackelte/unscharfe Winkel tauschen; Titel-Vorspann (Overlay)references/ablauf.md
8bAufräumen + Übergabe: Zwischen-Timelines in den Bin Anlegen, Soll-Zustand gegen das Vorbild prüfenreferences/vorbild-projekt.md
9Grafik-Einblendungen + Auslieferung (Infografiken aus dem Transkript, Instagram-Kurz 9:16, Untertitel, −14 LUFS)references/grafik-einblendungen.md, vorlagen/overlay_tools.py, vorlagen/infografik/, vorlagen/verify_overlays.py, vorlagen/instagram_kurz.py

Voraussetzung immer: Resolve läuft, Einstellungen → System → Allgemein → „Externes Scripting" = Lokal. Bei scriptapp("Resolve") is None → Resolve komplett neu starten.

⛔ NICHT VERGESSEN: Multicam entsteht KOMPLETT per Skript — nie per Maus

Nutzer-Anweisung (27.07.2026, ausdrücklich): Dieses Wissen darf nicht wieder verloren gehen, und es ist SO durchzuführen, nicht anders. Frühere Fassungen dieses Skills behaupteten, der Multicam-Clip ginge „nur von Hand in der GUI". Das ist falsch. Er wird gebaut mit vorlagen/mcbuild/build_mc_drt.py → import_mc2.py → verify_mc.py (verifiziert 27.07.2026, Resolve 21.0.3: Multicam-Clip + 21 geschnittene Winkel ohne einen einzigen Klick).

Kurzfassung des Verfahrens (Details in references/ablauf.md Schritt 6):

  1. Verschachtelte Schnitt-Timeline bauen (apply_cut.py) und als DRT exportieren (Timeline.Export(pfad, 1)).
  2. Aus einem beliebigen älteren Projekt mit Multicam ein DRT als Muster exportieren.
  3. build_mc_drt.py setzt in das neue DRT ein <Sm2MpMulticamClip>-Element + einen Definitions-SeqContainer (pro Kamera ein Track, UserDefinedName = „Angle N", MediaRef = DbId der Quell-Timeline) und biegt die Schnittclips auf den Multicam um.
  4. ImportTimelineFromFile → fertige Multicam-Schnitt-Timeline.

⭐⭐ Die eine Falle, an der es scheitert: Die Zuordnung Multicam-Sequence → Definitionscontainer steht nicht im Klartext-XML, sondern UTF-16-kodiert in den zstd-FieldsBlobs von MpFolder.xml``**. Deshalb **niemals neue UUIDs würfeln** — die DbIds von Multicam-Element, Sequence und Container aus dem Muster **unverändert übernehmen** (Resolve vergibt beim Import ohnehin frische IDs). Sonst entsteht ein Multicam-Clip **ohne Angles: Frames 0`, schwarzes Bild.

Berechtigungen & stehende Antworten — NICHT mehr nachfragen

Der Nutzer hat das entschieden; Claude setzt es ohne Rückfrage um und legt das Projekt bis zum fertigen, gegradeten Multicam-Schnitt mit Titel selbstständig an.

Berechtigungen sofort zu Beginn holen (nicht einzeln nachfragen):

  • Computer-use gleich freischalten: request_access(["DaVinci Resolve"]), Grund „Resolve steuern (Multicam, Grading, Titel)". Deckt die ganze Pipeline; nur bei einem ZUSÄTZLICHEN Programm erneut anfragen. Resolve bei Bedarf per open_application starten.
  • Skripten/Prüfen läuft über Bash + py C:\claude\resolve-ctl\rctl.py … und die Vorlagen-Skripte — fester Bestandteil, einfach ausführen (kein Nachfragen nötig).
  • Medien offline (Projekt wurde auf anderer Platte angelegt, z. B. E:→F:)? Ohne Rückfrage neu verknüpfen: mp.RelinkClips(clips, r"<Projektordner auf der aktuellen Platte>").

Stehende fachliche Antworten (nie wieder erfragen): 0. Schnitt-Tempo: geringfügig ruhiger als früher (Nutzer, 27.07.2026). Bei Projekt-A kamen manche Schnitte zu früh: nach einem Schnitt braucht der Zuschauer ein paar Sekunden, um sich auf das neue Bild einzustellen — folgt dann gleich wieder eine kurze Gegen-Einstellung, wirkt es hektisch. Wenige Sekunden mehr pro Einstellung genügen. Werte in 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 (Beruhigungspause: so lange nach einem Cutaway kein neuer), mechanische Teilung 55/42/10. Außerdem: erster Span immer Leitkamera und keine Cutaways vor dem inhaltlichen Anfang (ANFANG), sonst fällt direkt hinter dem Filmanfang ein Schnitt.

  1. ≥2 Kameras → IMMER die geschnittene Multicam liefern (echter Multicam-Clip per DRT-Bau, vorlagen/mcbuild/), damit der Nutzer beim Bearbeiten jeden Clip auf eine andere Kamera umschalten kann. Nicht mehr fragen „Nesting oder Multicam". ⭐⭐ Das gilt auch für JEDES abgeleitete Video — Kurzfassung, Ausschnitt, Arbeitskopie, Instagram-Fassung (Nutzer, 23.08.2026, ausdrücklich): Sie müssen echte Multicam-Timelines mit den Winkeln des Hauptschnitts sein, sonst kann der Nutzer beim Feinschnitt keine Einstellung mehr austauschen. ⛔ AppendToTimeline mit dem Multicam-Clip reicht NICHT — dabei landen zwar Multicam-Clips in der Zieltimeline, aber alle auf Angle 1; die Winkelwahl ist weg. Der Winkel steht nur im FieldsBlob des Clips und ist per API nicht setzbar. Richtiger Weg: vorlagen/kurzvideo_drt.py + vorlagen/kurzvideo_import.py (Hauptschnitt als DRT exportieren, Clips der gewünschten Passagen mit unverändertem FieldsBlob übernehmen, Start/Duration/In neu rechnen, importieren; Ton danach passagenweise per API auf A1). Der Grade kommt im DRT mit. 1b. ⭐⭐ Wiedergabe-Framerate = Timeline-Framerate — SOFORT beim Anlegen setzen (Nutzer, 23.08.2026). proj.SetSetting("timelinePlaybackFrameRate", "<fps>") gehört in denselben Einstellungsblock wie timelineFrameRate, bevor die erste Timeline entsteht. Steht sie falsch (Standard oft 24), klingt der Ton beim Abspielen schlecht — und sobald eine Timeline im Projekt liegt, verweigert SetSetting die Änderung (False, auch auf Timeline-Ebene). In der Oberfläche geht es dann noch: Zahnrad unten rechts → Haupteinstellungen → Timeline-Format → „Wiedergabe-Framerate" eintippen → Speichern. Beim Anlegen mitsetzen erspart diesen Umweg.
  2. Look — der Standard steht fest, Richtung NICHT erfragen, einfach bauen (Nutzer, 18.08.2026). Einzelheiten und die Kamera-Prüfung: references/farbgebung.md.
    • ⭐ Standard: Skill resolve-kino-look-nodekette — die 4-Node-Kette Filmemulation → Weißabgleich+Helligkeit (regelbar) → Finish-LUT (40 %) → Film-Look-Erzeuger (Halation/Vignette). Komplett per DRX übertragbar (0,04 s). Braucht Projekt auf DaVinci YRGB (nicht Color Managed).
    • Ersatz: Skill resolve-lut-look-kette — dieselbe Idee als reine LUT-Kette (Log→ARRI Rec.709 · regelbarer Node · Rec.709→ARRI LogC · Filmemulation · Kino-Look). Nehmen, wenn Plugins fehlen/nicht zur Kamera passen, eine Reihe schon darauf aufgebaut ist oder der Nutzer es wünscht.
    • In beiden Ketten zuerst die GEKAUFTEN LUTs und Werkzeuge; die freien Fassungen nur, wenn ein Werkzeug fehlt oder die Kamera kein Profil im Plugin hat.
    • ⚠️ Vor dem Bauen prüfen, welche Kameras im Projekt liegen. Log-Material (FS7 II, S-Log3) → Kette wie vorgesehen. Rec.709-Consumer-Camcorder (Sony AX100, CX900E und ähnliche) → Filmemulation gar nicht oder nur ganz wenig %, sonst werden die Farben unnatürlich; Filmcharakter über die übrigen Nodes holen. → Immer die Nodekette bauen, ohne Rückfrage. Nur die Feinhelligkeit bestätigen lassen.
  3. LUTs NUR für diese drei Look-Schritte. Jede Korrektur (Weißabgleich, Helligkeit, Farbstich/ Magenta/Blau, Sättigung, Kontrast) als regelbarer Resolve-Node-Wert, nie als zusätzliche gebackene LUT — damit nachvollziehbar bleibt, was vom Original abweicht, und einzelne Werte zurückstellbar sind.
  4. ⭐ Gleiche Node-Inhalte über Kameras hinweg = GETEILTE Nodes (Shared Nodes): die identischen Look-Nodes (ARRI-Wandlung, Filmstock, Kino) als geteilte Nodes anlegen, damit eine Änderung auf ALLE Clips/Kameras wirkt. Nur kamera-spezifische Korrekturen (z. B. Angleich weit→nah) bleiben lokal. Details in references/ablauf.md/fallstricke.md. 4b. ⭐⭐ Weißabgleich-Node: pro Winkel EIN geteilter Node — immer so anlegen (Nutzer, 24.08.2026, ausdrücklich „bitte für immer merken"). Der regelbare Node 2 („Weissabgleich + Helligkeit") wird je Winkel zu einem geteilten Node, der auf allen Clips dieses Winkels sitzt — dann ändert eine Korrektur den ganzen Winkel auf einmal. Winkel-übergreifend wird er nicht geteilt (jeder Winkel hat eigene Werte). Die Look-Nodes 1/3/4 sind ohnehin geteilt. Rezept (verifiziert 24.08.2026 an Projekt-M Projekt-M, 3 Winkel × 21/22 Clips):
    1. In der … import-Timeline des Winkels auf einen Referenzclip fahren (SetCurrentTimeline + SetCurrentTimecode, OpenPage("color")).
    2. Ein einziger Computer-use-Klick: Rechtsklick auf Node 2 → „Als geteilten Node speichern". (Die API kann das nicht; ein Klick ist zumutbar.)
    3. Alles Weitere per Skript: refItem.CopyGrades(alle_anderen_Clips_des_Winkels) — CopyGrades überträgt geteilte Nodes als dasselbe Objekt, das Label wird überall … Shared Node <n>. Das gilt auch timeline-übergreifend: die Kopien der Winkel-Timelines, die beim DRT-Import der Kurzvideos entstehen (… nah import 1…12), im selben Zug mitversorgen, sonst hängen die Kurzvideos an einem alten, nicht mitgeführten Grade.
    4. Prüfen: Node-Labels auslesen (alle gleich?) und je Winkel einen Frame messen.
    5. Gleich mit erledigen: LUT-Interpolation auf tetraedrisch stellen — Shift+9 → Color Management → „Look-up-Tables" → „3D-LUT-Interpolation" → Speichern (kein API-Schlüssel).

4c. ⭐ Unbenutzte Shared-Node-Kopien am Ende wieder löschen (Nutzer, 27.08.2026, für immer). Jedes Anwenden einer DRX/Look-Kette, die geteilte Nodes enthält, legt in der Shared-Node-Liste einen neuen Eintrag an, statt den vorhandenen zu benutzen — bei clipweisem Anwenden also eine Kopie pro Clip (Projekt-M Projekt-M: 198 Einträge, davon nur 12 benutzt, 186 Karteileichen, alle byte-identisch). Bild bleibt richtig, aber die Liste wird unbrauchbar und die Projekt-DB wächst.

  • Vermeiden: Kette einmal a

…

[truncated for translation]

相关技能