Musik-Werbevideo
Erstelle ein vertikales (standardmäßig 1080×1920) Werbevideo, das sich wie ein einziges, durchgehend hochwertiges Stück anfühlt. Ein Logo eröffnet es. App-Seiten, Cover und Player gehen durch fließende Kamerafahrten ineinander über. Songs laufen im Takt unter dem Bild. Eine passende Endkarte schließt es ab, sodass das Video loopbar ist.
Dieses Skill bündelt einen Workflow, der durch viele Runden echten Nutzerfeedbacks verfeinert wurde. Die Regeln in references/direction.md sind genau dieses Feedback, in Prinzipien gegossen. Lest sie, bevor ihr etwas gestaltet: Sie machen den Unterschied zwischen „nett“ und „das ist, was ich wollte“.
0. Erfassung: zuerst nach Referenzen fragen
Bevor ihr irgendetwas plant oder baut, fragt den Nutzer nach 3–4 Referenzen, die das Ergebnis prägen sollen. Die Referenzen bestimmen den Look, daher hängt das Video von ihnen ab. Fragt in einer freundlichen Nachricht zusammen mit der untenstehenden Asset-Liste, sodass der Nutzer nur einmal antwortet.
Fragt nach:
- 3–4 Referenzen: Videos (am besten: sie transportieren Bewegung und Tempo), Reels, Bilder oder Links dorthin. Fragt bei jeder, was dem Nutzer daran gefällt: den Look, die Farbe, die Typografie, die Übergänge, das Tempo, den Sound. Falls der Nutzer nur Links sendet, die ihr nicht öffnen könnt (Instagram, Pinterest, TikTok), fragt nach der heruntergeladenen Datei oder Screenshots. Behauptet niemals, etwas gesehen zu haben, das ihr nicht öffnen konntet.
- Wenn der Nutzer weniger als 3 sendet, fragt einmal nach und erklärt, dass mehr Referenzen ein genaueres Ergebnis liefern. Falls er immer noch nicht mehr hat, fahrt mit dem Vorhandenen fort und sagt, welche Entscheidungen ihr selbst getroffen habt.
- Wenn der Nutzer mehr als 4 sendet, fragt, welche 4 am wichtigsten sind, oder gewichtet die ersten.
Asset-Liste (fragt in derselben Nachricht und akzeptiert „du entscheidest“ bei allem):
- Logo (PNG mit Transparenz ist am besten).
- App-Screenshots (Startseite, Bibliothek, aktuell läuft), die zeigen, was real ist.
- Songs: die Audiodateien plus die Hook-Start- und Endzeit für jeden (Nutzer kennen ihren Hook; ratet ihn nicht aus den Lyrics).
- Soundeffekt-Paket (optional).
- Offizielle Musikvideo-Dateien (optional, für synchronisierte Clips).
- Format, Ziellänge, Bildrate (standardmäßig 1080×1920, 60 fps) und wo es gepostet wird.
Dann studiert die Referenzen ordentlich (siehe references/references-analysis.md): Kontaktbögen und dichte Bildsequenzen für Bewegung. Schreibt eine kurze Referenz-Zusammenfassung: Palette, Typografie-Rollen, Tempo (Schnitte pro Takt), Übergangsarten, Textur (Korn, Bloom, Papier oder keine), wie Text und Bilder interagieren, und den Sound-Charakter. Zeigt dem Nutzer die Zusammenfassung in wenigen Zeilen mit eurem Plan, und baut dann los, ohne auf weitere Zustimmung zu warten, es sei denn, etwas blockiert euch.
Wenn die Referenzen mit einer Regel in references/direction.md in Konflikt stehen, folgt zuerst den expliziten Worten des Nutzers, dann den Referenzen, dann den Voreinstellungen.
1. Überprüft die Umgebung
Ihr benötigt ffmpeg und Python mit numpy, pillow, opencv-python-headless und scipy (erstellt ein venv im Arbeitsordner). Schriftarten sind Systemschriftarten; überprüft, dass jede der drei Typografie-Rollen aufgelöst werden kann. Fehlt eine wesentliche Fähigkeit, sagt genau, was, und stoppt den abhängigen Schritt; präsentiert keinen Plan als fertiges Video.
2. Quellen und überprüft die Assets
- Cover-Artwork: Verwendet niemals Beschnitte aus Screenshots als sichtbares Cover. Sie sind zu weich, und Nutzer bemerken das. Findet das offizielle Artwork online mit
scripts/find_cover.py, das Apple/iTunes (bis zu 3000 Pixel) und JioSaavn durchsucht und jeden Kandidaten mit dem Screenshot-Beschnitt abgleicht. Akzeptiert nur Übereinstimmungen von etwa 0,98 oder höher und notiert die Herkunft (Quell-URL, Titel, Künstler, Übereinstimmungswert) incovers/provenance.json. Wenn nichts übereinstimmt (z. B. Spotify-generierte Mixe oder Radios), zeichnet eine scharfe Vektor-Version neu, wenn es ein einfaches Design ist (Liked Songs), oder lasst das Element weg. - Songs: Kopiert sie hinein, führt dann
scripts/beat_grid.pyauf jedem aus: Tempo, Downbeats, Energie pro halber Sekunde und den größten Energiesprung (den Drop). Fragt den Nutzer nach den Hook-Zeiten, anstatt sie aus einer Transkription abzuleiten. - Musikvideo:
scripts/av_sync.pygibt den Offset zwischen der Audiospur des Videos und der Songdatei an, sodass Bild und Song synchron bleiben.scripts/shot_cuts.pyfindet die eigenen Schnitte des Videos, sodass der Beschnitt dem Motiv pro Einstellung folgen kann. - SFX: Charakterisiert jede Datei (Länge, Spitzenposition, Helligkeit), weist eine Rolle zu (Tippen/Klicken, Whoosh, Riser, Pop, Glockenspiel, Rumpeln, Spezial) und notiert den Spitzen-Offset jeder Datei, sodass Cues auf der Spitze landen.
3. Plant die Zeitleiste auf dem Beat-Raster
- Behandelt die Filmzeit als Songzeit, während ein Song läuft (Film t = Song t + Offset). Setzt Szenenwechsel auf Downbeats und Pops und Stop-Motion-Schritte auf Beats oder Achtel.
- Typischer Bogen, an die Zusammenfassung anpassbar: Logo-Eröffnung → Bibliothek oder App-Seite → Album-Karussell → Jetzt läuft (Live-Fortschrittsbalken) → Drop-Moment (große kinetische Wörter) → Cover-Wand → Übergabe in den nächsten Song mit eigener Cover-Animation → dessen Player → optionaler Musikvideo-Abschnitt → Partikel-Finale ins Logo → Endkarte, die der Eröffnung entspricht.
- Jeder Wechsel zwischen Szenen muss eine durchgehende Bewegung sein: ein Zoom in ein Element, das zur nächsten Szene wird, ein abgestimmter Schnitt (dasselbe Bild an derselben Stelle auf beiden Seiten) oder ein Durchflug in einen dunklen Bereich. Listet den Mechanismus jedes Übergangs im Plan auf.
- Textregeln: Kein Wort sitzt jemals auf einem Artwork, und kein Wort bleibt hinter einem Logo oder Cover versteckt. Wörter gleiten hinter der Kante eines Objekts hervor oder steigen durch eine Maskenlinie auf und sitzen dann vollständig sichtbar. Titel, die über scrollendem Inhalt sitzen, gehören zu diesem Inhalt (Weltkoordinaten), daher überdecken Kacheln sie nie.
Siehe references/direction.md für den vollständigen Satz visueller Regeln und warum jede existiert.
4. Bauen
Startet mit dem ausgearbeiteten Beispiel in assets/reference_project/: render.py (Bildmaschine plus eine vollständige 58-Sekunden-Zeitleiste), audio.py (Mix) und style.json. Es enthält bereits getestete Bausteine:
- Compositing mit Unschärfe-Vorfilterung, weichen Schatten und Clipping;
- per-Frame Filmkorn und Bloom;
- die Drei-Rollen-
Text-Klasse (Serifenlos, Serifen kursiv, Monospace) mit erleichterten Eintritten, Stop-Motion-Eintritten und Drift-Austritten; - Maskenlinien-Wort-Enthüllungen und Hervorgleiten-hinter-Enthüllungen;
- Tipp-Wellen mit einem Druckeffekt; eine vektorielle Player-Oberfläche mit Live-Fortschrittsbalken und Herz-Tipp; die Wiederholungsring-Endkarte;
- das Diamant-Partikelsystem (ein Cover Stück für Stück zusammensetzen; es ins Logo anheben);
- Musikvideo-Wiedergabe mit Frame-Blending und pro-Einstellung Beschnitten;
- die Filter-Sweep-, Hüllkurven- und SFX-Cue-Werkzeuge.
Behaltet die Maschine; ersetzt die Zeitleiste und den Inhalt mit denen des neuen Projekts. Lest references/engine-notes.md für die Architektur und bereits gelöste Fallstricke.
Arbeitet in dieser Reihenfolge:
- Text- und Layout-Tests: Rendert 10–20 Einzelbilder über die Zeitleiste, erstellt einen Kontaktbogen, schaut ihn euch an und behebt Layout-Probleme vor einem langen Render.
- Der Mix (
audio.py): Er ist schnell, also messt die Pegel pro Sekunde und um jeden Übergang herum (references/audio.md). - Ein vollständiger Render im Hintergrund (60 fps dauert etwa 10 Minuten für 60 s auf einem Laptop; 120 fps etwa 25). Pollt nicht; wartet auf die Fertigstellungsmeldung.
5. QA des tatsächlichen Exports
Führt scripts/motion_qa.py auf dem endgültigen MP4 aus. Es meldet Frame-zu-Frame-Sprünge, Stop-Motion-Schritte, eingefrorene Frames und abnormal dunkle Frames. Extrahiert für jede Spitze, die kein beabsichtigter Schritt oder ein Musikvideo-Schnitt ist, die aufeinanderfolgenden Frames darum und seht sie euch an. Überprüft dann:
- Dauer, fps, Frame-Anzahl und vollständige Dekodierung;
- Lautstärke (−11 bis −14 LUFS integriert, Spitze etwa −1 dBFS, keine Verzerrung);
- Pegel pro Sekunde und Übergabepegel;
- beide Seiten jedes Übergangs;
- Text-Lesbarkeit in Telefongröße.
Berichtet ehrlich: Ihr könnt Audio messen, aber nicht hören. Sagt das und bittet den Nutzer, mit dem Ohr zu prüfen.
Für kleine Korrekturen rendert nur den betroffenen Zeitbereich neu (render.py --range a,b) und fügt ihn mit frame-genauen Trims in den Master-Render ein. Remuxt und überprüft die Nahtstellen erneut. Siehe references/qa-and-delivery.md.
6. Früh liefern und iterieren
- Sendet ein abspielbares MP4, sobald eine Version fertig ist, auch mitten in einer längeren Änderung. Nutzer fragen oft „ist es fertig?“ und möchten zuschauen, während ihr weiterarbeitet.
- Jede Runde: Lest die Worte des Nutzers sorgfältig. Sie tippen oft schnell und brechen mitten im Satz ab. Wendet genau das an, was sie gefragt haben, behaltet alles andere frame-identisch und sagt, was sich geändert hat. Wenn eine Nachricht abgeschnitten ist, macht den klaren Teil und fragt nach dem Rest.
- Behaltet vorherige Versionen (
archive_vN/) und benennt die Auslieferungen mit Version und fps.
Auslieferungen pro Runde:
- Haupt-MP4 (60 fps zum Posten; 120 fps nur auf Anfrage, und erklärt, dass soziale Plattformen maximal 60 fps abspielen);
- dasselbe Video nur mit Soundeffekten, ohne Songs (zum Posten mit plattformlizenzierter Musik);
- ein bearbeitbares Projekt-ZIP: Code, Stileinstellungen, Cover mit Herkunftsnachweis, verwendete Frames aus dem Video, verwendete SFX, die Mix-WAVs und eine README mit der Zeitleiste;
- eine kurze Notiz, was sich geändert hat, was geprüft wurde und was nicht, plus eine Erinnerung, dass die Songs, Cover-Artworks und Videoclips urheberrechtlich geschützt sind: in Ordnung für persönliche Edits, aber Plattformen können öffentliche Posts stumm schalten oder beanspruchen.
Referenzdateien
references/direction.md: die visuellen und redaktionellen Regeln aus Nutzerfeedback. Vor dem Gestalten lesen.references/references-analysis.md: wie man die 3–4 Referenzen des Nutzers studiert und die Zusammenfassung schreibt.references/audio.md: Song-Hüllkurven (leise zu laut, laut zu leise), nahtlose beat-synchrone Übergaben, SFX-Platzierung, Lautstärke.references/engine-notes.md: Architektur der Referenzmaschine und bereits gelöste Fallstricke.references/qa-and-delivery.md: Checks, teilweises Neurendern und Zusammenfügen, Kodierung, Paketierung.scripts/:beat_grid.py,find_cover.py,av_sync.py,shot_cuts.py,motion_qa.py(jeweils mit-hfür die Verwendung).assets/reference_project/: das vollständige ausgearbeitete Beispiel (Spotify-Werbung, „Raw Rich Rare“ in Drakes „National Treasures“).