Beat-Synced Montage Builder
Übersicht
Verwende dieses Skill, nachdem ein Song mit $song-edit-analysis analysiert wurde, oder wenn äquivalente Beat-/Cut-Marker-Daten bereits vorhanden sind. Das Ziel ist nicht nur, Clips unter Musik zu rendern; die Montage sollte sich wie ein auf den Song abgestimmtes Werk anfühlen, bei dem Themenwechsel, Einschläge, Menschenmengen-Reaktionen und visuelle Akzente auf bedeutungsvollen musikalischen Markern landen.
Die integrierte FX-Regel (nicht verhandelbar, felderprobt 2026-07)
Effekte und Footage dürfen niemals getrennt sein. Kein Beat-Wechsel zwischen Vollbild-FX-Segmenten und Vollbild-Echt-Clips – das wirkt wie zwei zusammengeschnittene Videos. Jeder Effekt muss verankert werden an (a) der Maske des Subjekts (personenweise Masken pro Frame – Apple Vision VNGenerateForegroundInstanceMaskRequest auf macOS oder Äquivalent), (b) der Szenengeometrie (Portale in Himmeln, Eck-pinned-Bildschirme, Wasserreflexionen, kantenumfassender Lichtüberlauf) oder (c) den Pixeln des Shots selbst (Kaleido/Spiegel des Live-Frames, Highlight-Smears, Zeit-Ripples der Frame-Historie). Prozedurale Renderings betreten Szenen als In-Scene-Elemente – durch Himmel, Bildschirme, Türen, Reflexionen – niemals als herausgeschnittene Segmente. Ein ungetracktes Screen-blended-Element wirkt wie ein Sticker. Verwandte Gesetze: Gut aussehen schlägt Parameter befolgen (umstrukturieren, statt einen Kohäsionsfehler auszuliefern); eine Effektsprache pro Schnitt, gesteigert mit der Song-Struktur – verschiedene Looks pro Shot brechen Kohäsion; ein reicher, durchgehender Grade über jedem Shot (pure Zurückhaltung wirkt verwaschen und langweilig; die Arbeitsformel ist reicher dichter Grade + eine harte Realitätsverbiegung pro Shot). Für emotionale Share-Lane-Stücke bevorzuge EINEN durchgehenden Shot mit einer fotometrischen Transformation (Grade-Rampe/Lichtankunft/Bloom, getrieben von den Hüllkurven des Songs) – Nähte durch Konstruktion unmöglich.
Compositing-Falle, die dich verbrennt: Screen Blends müssen in RGB (format=gbrp) laufen – in YUV hat Schwarz Chroma 128 und Screening flutet den Frame mit Magenta. Führe Opazität als RGB-lutrgb-Multiplikation durch.
Schnitt-Engines
Zwei Uhren, wähle pro Spur:
- Einsatz-gebunden (bevorzugt für Energie-/Retention-Spuren):
librosa.onset.onset_detect(onset_envelope=onset_strength(...), hop_length=512, backtrack=False, delta=0.02, units="time"); merge onsets näher als 0.13s, behalte den stärkeren; quantisiereint(round((t-t0)*FPS)); erzwinge Frame 0; schneide auf JEDEM überlebenden Onset – halte, wenn spärlich, burste, wenn dicht; Punch-in-Akzente auf Onsets im obersten Quartil. Benötigt einen tiefen Pool (~60+ getaktete Shots). Bevorzuge dies gegenüber Dichte-Voreinstellungen. - Marker-/Prioritäts-getrieben (Original-Engine dieses Kits): Schneide auf primären/sekundären Markern gemäß der Prioritätstabelle unten – immer noch richtig für Landschafts-Gameplay-Proof-Cuts und moderate Dichte-Montagen.
- Snappe jedes geschätzte Beat-Gitter an reale erkannte Onsets, wenn innerhalb von 60ms; für Style-Switch-/Transform-Momente verwende
floorstattround, sodass die Änderung auf dem Frame landet, der den Transienten enthält.
Build-Architekturen
- Segment-render → concat → post-graph (nur ffmpeg): Pro-Shot mp4s mit Cover-Crop (
scale=W:H:force_original_aspect_ratio=increase:flags=lanczos,crop=W:H, HDR-Quellen zuerst auf bt709 tonemappen,tpad=stop_mode=clonezum Einfrieren-Verlängern kurzer Clips – niemals das Musik-Grid verkürzen), concat demuxer-c copy, einfilter_complexHaus-Grade (eq=contrast=1.05:saturation=1.08, Vignette, Filmkorn vianoise=alls=5:allf=t+u), Audio zuletzt mit Fades gemuxt. - Frame-pipe numpy (pixelgenaue integrierte FX): Dekodiere ffmpeg→rawvideo rgb24→numpy-loop→kodiere ffmpeg stdin bei CRF 17. Die bewährte Matte-Pipeline: rendere einen sauber gegradeten
base.mp4(festgelegter Cut) → generiere Personen-Matten AUF dem Base → treibe Effekte über eine Pro-Frame-Effekttabelle → muxe das Original-Audio. Sync ist perfekt durch Konstruktion. - In-shader Fusion (moderngl GLSL): Footage in eine Textur dekodiert und die prozedurale Welt im selben Fragment-Shader gerendert, Cuts als
--cutsübergeben, sodass sie als In-Shader-Warp-Punches landen. Tiefste Integration; siehe$generated-media-sourcingfür das Renderer-Skelett.
Eingaben
Bevorzuge diese Eingaben:
- Audiodatei oder ein Ausschnittsfenster.
*_cut_markers_30fps.csvvon$song-edit-analysis.- Footage-Quellen oder ein Quellen-Manifest mit Clip-Pfaden, Kategorien, Gewichten und Nutzungshinweisen.
- Generated-Media-Manifest oder Generated-Asset-Ordner von
$generated-media-sourcing, wenn der Nutzer nach generierten Clips/Bildern fragt oder das Quellmaterial unvollständig ist. - Gewünschtes Format:
9:16,16:9oder beides. - Ziellänge, normalerweise
30-40sfür Social-Proof-Cuts.
Wenn es noch keine Cut-Marker-CSV gibt, führe zuerst $song-edit-analysis aus.
Workflow
- Wähle das musikalische Fenster vor dem Rendern. Nutze die Song-Analyse, um einen energiereichen oder narrativ kohärenten
30-40s-Ausschnitt zu wählen. - Inventarisiere Footage. Verwende
scripts/scan_video_sources.py, um Kandidaten-Videos nach Bewegung, Glanz, Helligkeit, Sättigung und vielversprechenden Startzeiten zu bewerten. - Wenn echtes Footage fehlt oder der Nutzer nach generierten Medien fragt, verwende
$generated-media-sourcing, um generierte Clips und Standbilder zu erstellen oder zu planen, bevor die endgültige Quellenzuordnung erfolgt. - Erstelle eine Quellen-Taxonomie. Übliche Arten:
gameplay,crowd,real_laser,photos_festival,photos_nature,character_select,menu,reaction,product,broll,generated_video,generated_still. - Baue den Segmentplan aus benachbarten Cut-Markern auf. Überspringe Mikro-Segmente unter ca.
0.17s, es sei denn, der Track verlangt tatsächlich nach Stutter-Cuts. - Passe Footage-Intensität an die Marker-Priorität an:
- Priorität 1-2: Aufbau, Kontext, Halte, sanfte Bewegung.
- Priorität 3: mittlere Action, Kamerawinkelwechsel, rhythmisches B-Roll.
- Priorität 4: aktive Bewegung, schnelle Schnitte, Reaktion-Antworten.
- Priorität 5: beste Einschläge, Enthüllungen, KOs, Crowd-Hits, Laser-Flashes.
- Verwende Akzente als Interpunktion, nicht als Füller. Echte Laser, Crowd-Popoffs, Natur-Flashes, Menü-Momente, generierte Platten und abstrakte Lichter sollten Phrasenwechsel, Snares, Fills und Drops verstärken.
- Rendere Segmente, konkateniere, hänge den sauberen Audio-Ausschnitt an, dann ausgebe:
- finales Video
- Timeline-CSV
- Kontaktblatt
- Brief-JSON mit Quellenmix, Art-Mix, Abmessungen, Song-Fenster und kreativer Absicht
- Führe
$edit-delivery-qaaus, bevor du die Bearbeitung als abgeschlossen bezeichnest.
Rendering-Patterns
Für vertikale Montagen, die Querformat-Footage enthalten, halte die Hauptaktion lesbar:
- Verwende einen vollflächigen weichgezeichneten/aufgewerteten Hintergrund aus demselben Clip.
- Lege den scharfen Vordergrund mittig mit stabilem Skalierungs- und y-Wert darüber.
- Füge nur subtile obere/untere Trennlinien hinzu, falls nötig.
- Vermeide enge vertikale Zuschnitte, die Bühne, Startrichtung, Gesichter oder wichtige UI verlieren.
Für vollflächige Akzent-Footage:
- Skaliere/zoome, um das Lieferformat zu füllen.
- Erhöhe Kontrast/Sättigung genug, um schnell lesbar zu sein.
- Halte Laser-/Festival-/Reaktions-Akzente kurz: oft
2-12Frames oder einen Beat.
Für Querformat-Gameplay-Montagen:
- Halte die Vollbild-Aktion sichtbar.
- Bevorzuge
1920x1080,30fpsMinimum. - Verwende schnelle Ein-Beat-Schnitte in energiereichen Abschnitten, aber bewahre die Lesbarkeit der Quelle.
Quellen-Auswahlregeln
Bevorzuge offensichtliche Onscreen-Action: Einschläge, Kollisionen, Spitzen, Enthüllungen, schnelle Combo-Strings, ausdrucksstarke Reaktionen oder stark bewegte Licht-Momente.
Halte explosive menschliche Reaktions-Shots für Call-and-Response nach größeren Einschlägen bereit. Lehnne Crowd-only-Footage nicht automatisch ab; lehne nur schwache, langsame oder visuell flache Reaktionen ab.
Verwende wann immer möglich echtes Footage für finale Laser-/Festival-Akzente. Generierte Platzhalter sind für die Erkundung akzeptabel, aber ersetze sie vor der endgültigen Lieferung, wenn echte Quellen existieren.
Lehne ab oder stark priorisiere Titel-Cards, Interviews, Menüs ohne bewusste Rolle, leere Bühnen, flache Schiefertafeln, überbeschnittene Action und wenig bewegte Aufbauten in Spitzenabschnitten.
Generierte Clips und Standbilder müssen in Timeline-/Brief-Ausgaben mit generated_video oder generated_still, dem verwendeten Prompt und ob das Asset final_ok, replace_if_real_source_found oder placeholder_only ist, gekennzeichnet werden.
Timing-Heuristiken
- Verwende primäre Marker für harte Schnitte, Themenwechsel, Einschläge, Enthüllungen und Speed-Ramp-Landungen.
- Verwende sekundäre Marker für Fortsetzungs-Schnitte, Kamerawinkelwechsel, kleine B-Roll-Wechsel und Speed-Ramp-Starts.
- In energiereichen Abschnitten funktioniert eine durchschnittliche Segmentlänge um
0.35-0.50sgut für eine dichte Social-Montage. - Für einen
35sProof-Cut sind70-90Segmente ein starkes Ziel, wenn das Quellmaterial dies unterstützt. - Reserve das stärkste Footage für den energiereichsten Abschnitt; verwende nicht alles Peak-Material während des Aufbaus.
Vertikales Musikvideo-Pattern (2026-07)
Für 9:16 Musikpromotion (die neuere Spur neben dem Smash-Pattern): 1080×1920@30 immer; Loop-Seam-Ende (fotometrischer Zustand kehrt über die letzten ~22 Frames zu Frame 0 zurück); Hook-Text mit Second-Line-Drop-Kinetik (Zeile 1 statisch bei Frame 0, Zeile 2 beat-gebunden innerhalb ±100ms eines echten Onsets bei 0.8–1.3s) entweder ein Sweeps-Stil-Container (schwarze Leinwand, zentriertes Footage-Fenster, Monospace-Hook oben, Credit unten) oder vollflächig cineastisch. Iteriere als nummerierte Versionen auf stabiler Infrastruktur – ändere nur die Effektsprache zwischen den Versionen; wenn der Kunde einen 2-Sekunden-Moment liebt, mache diesen Moment zur gesamten Sprache der nächsten Version.
Projektmuster aus Conteto Machino
Die wiederverwendbare Form aus dem Smash Mash Projekt:
- Song-Fenster: etwa
52.98s-88.17s, ein35.19senergiereicher Ausschnitt. - Dichte marker-getriebene Montage: ungefähr ein Segment pro Beat oder großem Marker.
- Hauptgameplay/-Action ist dominant.
- Crowd, echte Laser, Natur und Menü-/Quellenkontext-Momente erscheinen als kurze Interpunktion.
- Liefergegenstände umfassen finale MP4s, Kontaktblätter, Timeline-CSVs und Brief-JSON-Dateien.
Für den detaillierten Standard lies references/conteto-edit-standard.md.
Optionale Referenzen:
references/example-prompts.md: wiederverwendbare Prompts für zukünftige Bearbeitungsaufgaben.references/file-schemas.md: flexible Timeline-CSV- und Brief-JSON-Formen.references/render-recipes.md: FFmpeg-/Layout-Rezepte adaptiert aus diesem Projekt.references/gui-vision.md: Produktvision für einen zukünftigen grafischen Workflow.
Skript
Verwende scripts/scan_video_sources.py, wenn du ein wiederverwendbares Footage-Inventar benötigst:
python3 scripts/scan_video_sources.py /path/to/videos --out /path/to/source_inventory
Es schreibt eine CSV und ein JSON mit Media-Dauer, groben Bewegungs-/Glanz-Scores und empfohlenen Startzeiten. Verwende die Ausgabe, um Quellenpools aufzubauen und zu verhindern, dass wiederholt aus denselben toten Momenten geschnitten wird.