Video-Breakdown: Von einem Video, das jemand mag, zu benannten Techniken und einem Rezept
Dies ist Video-Breakdown 0.4.1.
Die Person hat ein Video, das sie mag, und kann nicht benennen, was darin enthalten ist. Du gibst ihr, Aufnahme für Aufnahme, den korrekten Namen jedes Übergangs, jeder Kamerabewegung, jedes Textstils und Sounds, die EditAtlas-Technik, die dahintersteckt, und die Schritte, um ein ähnliches Video mit eigenem Material zu erstellen.
Drei Dinge gelten durchgehend:
- Die Zahlen sind Hinweise, die Frames sind der Beweis.
analyze.pymisst Pixel und Stichproben. Es verwechselt einen Crash Zoom mit einem Join, eine Irisblende mit einem Dip to Black, das Flackern eines alten Films mit Schnitten. Jedes Element, das du benennst, muss von Frames stammen, die du mit dem Read-Tool geöffnet hast. Gib an, welche du nur gemessen hast. - Du kannst nicht hören. Audio-Zahlen sagen, wo etwas Plötzliches passiert, wie laut, wie hell und das Tempo. Sie sagen nicht, was der Sound ist. Schreibe niemals „ein Whoosh“ für einen Transienten, den du nicht identifiziert hast; schreibe „ein kurzer heller Hit bei 4,9 s, nahe am Zoom".
- Erfinde niemals etwas. Arbeite nur mit der Datei, die die Person gegeben hat. Jeder Technique-Slug und jede Sound-ID im Bericht stammen aus einer EditAtlas-Suche oder einem get-Aufruf in dieser Sitzung. Wenn nichts passt, sag es.
Skripte befinden sich in scripts/ (Python 3.9+, numpy, Pillow, FFmpeg mit ffprobe im PATH). Führe sie mit dem Pfad des Skill-Ordners aus, von einem eigenen Arbeitsordner (work/); schreibe niemals in die Ordner der Person.
python SKILL/scripts/analyze.py VIDEO --out work/bd # breakdown.json + sheets
python SKILL/scripts/frames.py VIDEO --at 6.8 --span 0.6 --step 0.04 --out work/look # jeden Frame eines Joins
python SKILL/scripts/frames.py VIDEO --at 7.9 --crop 0,60,100,40 --out work/look # untere 40 %, um Text zu lesen
python SKILL/scripts/text_look.py VIDEO --at 3.6 --crop 12,24,76,11 --text "Caringbah" --fonts sans-heavy --out work/text/title
python SKILL/scripts/report.py work/bd/breakdown.json work/bd/notes.json --out result/breakdown.md --check-api
Wenn die Eingaben fehlen
- Keine Datei, nur ein Link (TikTok, Reels, YouTube): Bitte die Person, das Video herunterzuladen und dir den Dateipfad zu geben. Dieser Skill lädt nichts von Plattformen. Eine Bildschirmaufnahme des Videos funktioniert auch.
- Gar kein Video: Frage danach. Beschreibe nicht, was ein solches Video „üblicherweise“ hat.
- Sehr langes Video (über 5 Minuten):
analyze.pyliest die ersten 300 s. Frage, welcher Teil wichtig ist, oder verwende--max-seconds.
Breakdowns dienen dem Lernen, wie ein Video bearbeitet wurde. Das Rezept verwendet das eigene Material der Person; schlage nicht vor, das Filmmaterial, die Musik oder die Charaktere der Referenz wiederzuverwenden.
1. Messen
Führe analyze.py aus. Es gibt eine Zusammenfassung aus und schreibt breakdown.json mit:
| Teil | Was es enthält |
|---|---|
format | Größe, Seitenverhältnis (9:16, 16:9), fps, Dauer |
pacing | Aufnahmen, Joins pro Minute, mittlere/kürzeste/längste Aufnahme, Joins in den ersten 3 s, Regelmäßigkeit |
joins | Jeder Szenenwechsel: Zeit, Länge, Art (cut, cross-dissolve, dip to black, white flash, bright flash, wipe mit der Seite, aus der er kommt, shape wipe (eine flache Form wächst über das Bild) mit seiner Kontur und Seite, push or slide mit der Richtung, zoom transition, blur transition, snap zoom or punch-in, jump cut, gradual (other)) |
shots | Pro Aufnahme: gemessene Kamerawörter (Push In, Fast Zoom, Pan, Shake, Hold, Speed Change), der Look (dunkel, warm, schwarz-weiß, schwarze Balken, dunkle Ecken), und für Aufnahmen, die stillhalten, das Timing: wie lange Dinge zum Einblenden brauchen, wie lange sie halten, wie sie verschwinden |
overlays | events: Momente, in denen sich ein Bereich des Frames ändert, während der Rest gleich bleibt (Text, Sticker, Grafiken kommen oder gehen); persistent: Regionen, die über Joins hinweg bestehen bleiben (Logo, Rahmen, Untertitel-Leiste) |
audio | Lautstärke, sprachähnlicher Anteil, Tempo-Kandidaten und ob Schnitte auf dem Beat liegen, Transienten (plötzliche Geräusche) mit dem nächsten Bildereignis, Swells (Anstiege zu einem Höhepunkt) |
Was jede Zahl bedeutet und wo sie falsch liegen kann: references/reading-the-numbers.md. Lies es vor deinem ersten Breakdown einer Sitzung.
2. Anschauen
Öffne mit dem Read-Tool in dieser Reihenfolge:
overview.png: das gesamte Video in 24 oder mehr Frames (alle 0,15 s in einem kurzen Video, eine Sekunde oder weniger in einem langen). Erfasse zuerst die Geschichte und den Stil, und wo jeder Text erscheint.shots_NN.png: erster, mittlerer und letzter Frame jeder Aufnahme. Prüfe, ob jede Aufnahme echt ist: Ein Crash Zoom, ein Flash oder ein Flackern können eine Aufnahme in zwei teilen; eine Überblendung innerhalb des Quellmaterials kann wie ein Join aussehen.joins_NN.png: sechs Frames über jeden Join, der kein einfacher Schnitt ist. Benenne den Übergang anhand dieser Frames.events.png: vor und nach jedem Overlay-Ereignis. Hier zeigen sich Untertitel, Sticker und Grafiken.
Verwende dann frames.py, wo immer du unsicher bist: --step 0.04 (ein Frame bei 25 fps) über einen Join, um seine Form zu sehen, --crop um kleinen Text zu lesen oder zu sehen, wie ein Wort erscheint (Pop, Bounce, Slide, Typewriter), --times für ein paar Momente nebeneinander. Zwei oder drei genaue Blicke sind normal; ein kurzes Video mit vielen Effekten kann mehrere erfordern.
Prüfe das Format am Bild. Ein 9:16-Video, dessen Aufnahmen wie aus breiterem Filmmaterial ausgeschnitten aussehen (Film, Podcast, Spiel: Gesichter und Objekte an den Seiten beschnitten, ein Rahmen, der in jeder Aufnahme anders sitzt) ist ein Reframe: Sag es und suche reframe to vertical. Breites Filmmaterial mit schwarzen Balken ist stattdessen Letterboxed oder Pillarboxed.
Schreibe für jedes Element auf, was du in einfachen Worten siehst, bevor du nach einem Namen suchst: „Das alte Bild wird in eine horizontale Linie gequetscht, während das neue dahinter erscheint“, nicht „ein Squeeze".
Text auf dem Bildschirm
Text ist das, was Leute zuerst kopieren und worin eine Nachbildung am meisten falsch macht: die falsche Schriftart, flache Farbe, wo das Original einen Farbverlauf hat, Text vor einer Person, wo das Original ihn dahinter setzt. Finde für jeden Text, der nicht einfacher Untertitel ist, diese fünf Dinge:
- Ebene. Bedeckt eine Person oder ein Objekt einen Teil der Buchstaben (Haare über dem unteren Rand eines Wortes, eine Hand davor)? Dann ist der Text hinter dem Motiv:
compositing-text-behind-object. Betrachte einen Ausschnitt, wo sie sich überlappen. Überprüfe jeden Titel, nicht nur den ersten: Ein Video kann mehrere Wörter hinter dem Motiv platzieren. - Eingang.
frames.py --at <Zeit des Erscheinens> --span 0.6 --step 0.04 --crop ...: Gleitet mit Bewegungsunschärfe ein (von welcher Seite), fällt von oben, poppt (Skalierung), blende ein, schreibt sich ein, Wort für Wort oder auf einmal, und ob Wörter sich nach dem Einblenden wieder bewegen. Overlay-Ereignisse übersehen Text, der während einer Kamerabewegung erscheint; verwende die Übersicht, um diese Zeiten zu finden. - Farbe. Führe
text_look.pyauf einem Ausschnitt des Textes aus, sobald er vollständig und still ist. Beschneide eine Zeile mit etwas Hintergrund auf jeder Seite. Es gibt die Füllung aus (einfarbig oder ein Farbverlauf mit seiner Richtung und Stopps als Hex-Farben), eine Kontur oder einen Offset-Schatten, ein Leuchten oder einen dunklen Hof um die Buchstaben, und wie stark die Buchstaben geneigt sind. Öffnelook.png: „taken as text“ muss die Buchstaben und nichts anderes zeigen. Wenn es ein Gesicht erfasst oder einen Teil eines Farbverlaufs ausgelassen hat, führe es erneut mit--text-clustersund den Cluster-Nummern aus, die Text sind (das Panel darunter zeigt jeden Cluster). Jedes Wort kann seine eigenen Farben haben: Messe jeden Titel separat. - Schriftart. Beschreibe zuerst die Buchstaben: Sans oder Serif oder Script; bei Scripts, gleichmäßige Striche (Brush, Marker, Casual) oder dicke Abwärtsstriche mit haardünnen Aufwärtsstrichen (formal, kalligrafisch); Gewicht; aufrecht oder geneigt; Groß- oder Kleinschreibung; breit oder schmal.
text_look.pygibt die Strichstärke und den Kontrast aus, die eine kalligrafische Schrift (Kontrast 2,2 oder mehr) von einer Brush-Schrift unterscheiden. Füge dann--text "<die Wörter genau wie gezeigt>" --fonts <Gruppen>hinzu (--list-fontszeigt sie) für die eine oder zwei passenden Gruppen und vergleiche die Buchstaben mit bloßem Auge: Großbuchstaben, die Formen von a, g, t, die Verbindungen. Die Match-Zahl hilft bei Sans- und Serif-Schriften und ist schwach bei Scripts. Nenne einen oder zwei kostenlose Lookalikes und sage, dass es Lookalikes sind, nicht die Schrift des Erstellers. - Position und Größe: wo es sitzt, seine Höhe als Anteil des Frames und wie lange es bleibt.
Gestaltete Bewegung
Bei Logos, Titeln, Diagrammen und Grafikvideos ist das Timing das, was sie fertig aussehen lässt und was eine Nachbildung falsch macht. Lies das timing jeder Aufnahme (comes in over 0.7 s, fast, then settles; still for 71 % of the shot; leaves over 0.8 s, slow, then speeds up) und format.loops, überprüfe sie in den Frames und setze die Zahlen in das seen oder note des Elements und in das Rezept. Auf einem einfachen Hintergrund kann eine Grafik, die wächst oder erscheint, als Join gemeldet werden (jump cut, snap zoom, zoom transition): Wenn der Hintergrund gleich bleibt, ist es der Eingang des Elements. Details: „Gestaltete Bewegung“ in references/reading-the-numbers.md.
3. Benenne es mit EditAtlas
Suche für jedes Element nach dem Ergebnis, nicht nach einem geratenen Namen:
search_techniquesmit der einfachen Beschreibung („Kreis schließt sich zu Schwarz und öffnet sich dann“, „Wörter hüpfen einzeln herein“, „plötzlicher schneller Zoom auf das Motiv“). Verwendecategoryzum Eingrenzen (transition, captions, motion, vfx, color). Suchbegriffe, die für jedes Analysator-Label funktionieren, stehen inreferences/reading-the-numbers.md.get_techniquefür die ein oder zwei besten und behalte diejenige, deren Beschreibung zu dem passt, was du gesehen hast. Kopiere ihrenslugundnamegenau. Markiere die Übereinstimmung alsexact,close(gleiche Idee, ein Detail unterscheidet sich) oderpartial.- Sounds:
search_sfxnach dem, was der Moment braucht (Pop für erscheinenden Text, Riser in einen Hit, Whoosh bei einem Push). Der Sound in der Referenz ist dir unbekannt; du schlägst einen EditAtlas-Sound für denselben Moment vor, also sag es. get_workflowmit dem Videotyp (short_vertical,product_ad,food_review, ...) für das Tempo und die Struktur, die EditAtlas empfiehlt; vergleiche sie mit dem, was du gemessen hast.
Ohne das MCP beantwortet die REST-API dieselben Suchanfragen: https://edit.trysometh.ing/api/v1/techniques?q=... und /api/v1/sfx?q=....
Ein einfacher Schnitt, eine Sprechpassage oder das Filmmaterial selbst benötigt keine Technik: Gib ihm eine gap, die das erklärt. Wenn nichts in EditAtlas zu einem echten Effekt passt, schreibe, wonach du gesucht hast, in gap; das sagt EditAtlas, was fehlt.
4. Schreibe die Notizen und den Bericht
Schreibe notes.json neben breakdown.json (Format und ein Beispiel: references/notes-format.md): was in jeder Aufnahme auf dem Bildschirm ist, jedes Element mit seiner Zeit, einfacher Beschreibung, Beweis und EditAtlas-Technik oder Sound, Korrekturen, wo die Messungen falsch waren, ein Rezept und was du nicht überprüft hast. Setze lang auf die Sprache der Person (vi oder en).
Führe report.py ... --check-api aus. Es weigert sich, Notizen zu akzeptieren, die eine Aufnahme auslassen, ein Element ohne Technik oder Grund lassen oder auslassen, was nicht überprüft wurde, und mit --check-api bestätigt es, dass jeder Slug und jede Sound-ID auf EditAtlas existiert und dass die Namen übereinstimmen. Korrigiere, was es auflistet, und führe es erneut aus.
Ausliefern
Zuerst ein Versionscheck. Wenn das EditAtlas-MCP verbunden ist, rufe get_skill ohne Namen auf. Wenn es video-breakdown über 0.4.1 auflistet, sagt die erste Zeile deiner Antwort, dass eine neuere Version existiert und wie man sie aktualisiert (in Claude Code: /plugin, dann Marktplätze, editatlas-skills, Marktplatz aktualisieren; anderswo gibt get_skill mit Namen video-breakdown den Schritt). Ohne MCP überspringe es.
Gib der Person in ihrer Sprache:
- Zwei oder drei Sätze: Um welche Art von Bearbeitung es sich handelt und was sie ausmacht (Tempo, der eine charakteristische Effekt).
- Die Elemente in zeitlicher Reihenfolge mit ihren Namen und Links: die Tabelle des Berichts oder die Hauptzeilen davon.
- Das Rezept: Schritte mit eigenem Filmmaterial, Technik für Technik. Biete an, die Bearbeitung durchzuführen, die mit
get_workflowbeginnt; und für die Sounds den Skillsound-design(get_skill). - Was gemessen wurde, was du dir angesehen hast und was unbekannt ist: die tatsächliche Schrift des Erstellers (du gibst kostenlose Lookalikes), die genauen Easing-Kurven (
timinggibt Dauern und eine Form an, nicht die Kurve), was jeder Sound tatsächlich ist, ob Filmmaterial gefilmt oder generiert wurde. - Die Berichtsdatei (
result/breakdown.md).
Frage nach der Auslieferung, ob die Namen und Techniken richtig waren, und sende die Antwort mit send_feedback, wenn dieses Werkzeug verfügbar ist.
Referenzen
references/reading-the-numbers.md: jede Messung, ihre bekannten Fehler und Suchbegriffe pro Label. Vor dem ersten Breakdown einer Sitzung lesen.references/notes-format.md: die notes.json-Felder mit einem vollständigen Beispiel. Vor dem Schreiben von Notizen lesen.