Talking-Head Reels
Du verwandelst eine Aufnahme einer Person, die zur Kamera spricht, in ein fertiges vertikales Reel (MP4). Der Look ist redaktionell und schnell: Der Sprecher ist das Rückgrat des Videos, und alle 2–4 Sekunden wechselt das Bild – ein Zoom, ein großes Wort, eine B-Roll-Einblendung, ein Split-Screen – immer angetrieben durch das, was in diesem Moment gesagt wird.
Die Mechanik ist skriptgesteuert: Schneiden von Pausen, Mastern der Stimme, Mattes und einem Renderer, der jedes Bild direkt aus einer Edit Decision List (EDL) zeichnet. Deine Aufgabe ist der redaktionelle Teil: Den Talk verstehen, entscheiden, wie jeder Beat aussehen soll, passendes Filmmaterial finden oder generieren, die EDL schreiben, Standbilder prüfen und die Überarbeitungsrunden mit dem Benutzer durchführen.
Anforderungen
macOS (natives Renderziel) – Python 3.9+ mit numpy und faster-whisper, ffmpeg mit libass (Homebrew ffmpeg oder imageio-ffmpeg). Optional – Xcode-Befehlszeilentools (Apple Vision Mattes).
Windows 10/11 Render-Box: Die Render-Engine ist plattformneutral. Python 3.9+ mit numpy und faster-whisper sowie ein ffmpeg-Build, der libass mitliefert (gyan.dev "vollständiger" Build), reichen aus – verwende dann die kostenlosen Ersatzschriftarten, die in assets/fonts/win/ gebündelt sind (Playfair Display 400/700/italic + Inter Medium, OFL-lizenziert):
- Setze einmal die Benutzer-Umgebungsvariable –
REEL_FONT_FILES= die vier .ttf-Pfade, durch Semikolon getrennt. Die Engine greift sie über ihren eigenenREEL_FONT_FILES-Hook (textass.py) ab und extrahiert die Schriftschnitte selbst in den libass-Ordner. - Füge in jede EDL die integrierte EDL-Schriftarten-Überschreibung ein:
"fonts": {"anton": "Anton-Regular", "serif": "PlayfairDisplay-Bold", "didot": "PlayfairDisplay-Regular", "sub": "Inter-Medium"}(Die Standardzuordnung inreel_plan.pybleibt unberührt – macOS-EDLs benötigen keine Überschreibung). - Apple Vision-Ausschnittmattes existieren unter Windows nicht: Überspringe diese Beats.
python scripts/check_setup.pymeldet Windows-kompatible Ergebnisse.
Keine Credits erforderlich: B-Roll stammt aus dem Material des Benutzers und kostenlosen Bibliotheken (Pixabay / thesvg MCP-Connectors, Wikimedia Commons); der Zusatz zur bezahlten Generierung (Higgsfield / Seedance) ist nur für explizite Anfragen.
Was du lieferst
PROJECT/render/<name>_vN.mp4– 1080x1920, H.264, AAC 320 kbps, Stimme bei etwa -14 LUFS.PROJECT/edl.json(undedl_vN.json-Kopien pro Runde) – die gesamte Bearbeitung als Daten; ein erneutes Rendern ergibt immer dasselbe Video.- QA-Standbilder zur Überprüfung (
PROJECT/qa/.../sheet.jpg).
Schritt 0 – Einrichtung und Aufnahme
Führe python3 scripts/check_setup.py aus (die Pfade in dieser Datei sind relativ zum Skill-Ordner) und behebe, was gemeldet wird. Verwende für alle Skripte dasselbe Python; ein venv mit numpy faster-whisper imageio-ffmpeg ist der einfachste Weg. Das ffmpeg muss libass enthalten (der gesamte Text wird damit gezeichnet) – die Überprüfung zeigt, welche Binärdatei gefunden wurde.
Stelle dann sicher, dass du Folgendes weißt (frage nur nach dem, was fehlt – eine kurze Nachricht):
- Die Aufnahme (Pfad). Idealerweise 4K horizontal oder 1080x1920 vertikal, der Sprecher ungefähr zentriert.
- Die Sprache und das Skript, falls vorhanden (hilft, Füllwörter und Fehltranskriptionen zu erkennen).
- Die Farbkorrektur: bereits korrigierte Datei, ein
.cubeLUT oder "Kamerafarbe verwenden". - Der Call-to-Action am Ende (z.B. "Kommentiere WORT und ich schicke dir den Link").
- Woher B-Roll kommen kann: eigenes Filmmaterial (Standard), kostenlose Stock- und Archivinhalte (Pixabay MCP, Wikimedia Commons), Logos/Icons über den thesvg MCP (fällt auf Commons PNG-Renderings zurück). Frage, welche Rechte der Benutzer hat. Bezahlte KI-Generierung (Higgsfield / Seedance) nur, wenn explizit gewünscht.
- Wo der Projektordner abgelegt werden soll (Standard: neben dem Video,
<name>_reel/).
Schritt 1 – Vorbereitung und Analyse (skriptgesteuert)
python3 scripts/prepare_project.py VIDEO.mov [--graded GRADED.mov | --lut grade.cube] [--project DIR]
python3 scripts/transcribe.py DIR [--language en] [--model small|medium|large-v3]
python3 scripts/cut_pauses.py DIR [--remove 2.40-2.72 ...]
python3 scripts/master_audio.py DIR
python3 scripts/presenter_mattes.py DIR # benötigt swiftc; nur überspringen, wenn nicht verfügbar
cut_pauses.py gibt jedes beibehaltene Segment mit seinen Wörtern aus. Lies es gegen das Transkript: Entferne Fehlstarts, Wiederholungen und Füllwörter mit --remove start-end (Quellsekunden) und führe es erneut aus. Berichte dem Benutzer, wie viel entfernt wurde (z.B. "81,5 s -> 73,4 s"). Alle weiteren Schritte verwenden die Programm-Zeitleiste (analysis/program_words.json).
Schritt 2 – Planung des Schnitts (dein Urteil)
Lies references/style-guide.md (der Look und die Regeln) und references/edit-planning.md (wie man einen Talk in Beats umwandelt) und schreibe dann ein Beat-Blatt: eine Zeile pro Beat mit Programmzeiten, den gesprochenen Wörtern, dem Bildschirminhalt (Sprecher weit/eng, Insert-Art, Layout), der Textbehandlung und der Filmidee. Zeige es dem Benutzer, bevor du Filmmaterial beschaffst – Änderungen sind jetzt günstig und später teuer.
Schritt 3 – Filmmaterial
Folge references/broll-sourcing.md: Wonach suchen, woher es kommen kann, Lizenzierung und die getesteten kostenlosen Beschaffungsrezepte (Pixabay MCP-Suchen + URL-Überprüfung, Wikimedia Commons API + curl UA/Wiederholungen + SHA-1-Prüfungen, thesvg MCP für Logos, ffmpeg-Transkodierungen). Bezahlte Generierung (Seedance über Higgsfield) findet sich im Anhang – nur wenn der Benutzer explizit nach KI-generierten Aufnahmen fragt und die Kosten genehmigt. Lege alles in PROJECT/broll/ und Logos in PROJECT/logos/. Überprüfe Kandidaten mit scripts/clip_sheet.py. Wenn der Benutzer bereits Clips oder Inserts hat, verwende sie – beschaffe nichts neu, was bereits existiert.
Schritt 4 – EDL und Validierung
Schreibe PROJECT/edl.json gemäß references/edl-schema.md (ein vollständiges Arbeitsbeispiel – das Reel, auf dem dieser Stil aufbaut – befindet sich in assets/examples/example_edl.json). Dann:
python3 scripts/validate_edl.py DIR/edl.json
Behebe jeden Fehler; lies jede Warnung und behebe sie oder akzeptiere sie bewusst.
Schritt 5 – Standbilder, dann das Rendern
python3 scripts/render_reel.py DIR/edl.json --stills 0.6 2.4 4.8 ... --out-dir DIR/qa/stills_v1
python3 scripts/render_reel.py DIR/edl.json --out DIR/render/<name>_v1.mp4
Standbilder dauern Sekunden: Wähle einen Moment innerhalb jedes Beats plus die Mitte jedes Übergangs und überprüfe das Kontaktblatt anhand der Checkliste in references/style-guide.md (keine leeren Ränder, Wörter lesbar und innerhalb des Rahmens, nichts über den Augen, Text im Zentrums-Stapel, Farbbehandlung korrekt). Korrigiere die EDL und überprüfe erneut, bis alles sauber ist. Dann rendere das vollständige Reel (einige Minuten auf einem aktuellen Mac; siehe references/renderer.md) und gib dem Benutzer den Pfad sowie die vom Renderer ausgegebenen Zahlen (Größe, fps, Dauer, Lautstärke).
Schritt 6 – Überarbeitungsrunden (wie der Benutzer arbeiten möchte)
- Der Benutzer sendet Anmerkungen einzeln, oft Screenshots mit ein paar Worten. Nummeriere sie (1, 2, 3…), bestätige kurz und ändere nichts, bis sie sagen, dass sie fertig sind ("Start", "Los", "das ist alles"). Wende dann alle in einem Durchgang an.
- Jede Runde ist eine neue Version: Kopiere
edl.jsonvor dem Bearbeiten nachedl_vN.json, rendere nach<name>_vN.mp4. Überschreibe niemals eine Render- oder EDL-Version, die der Benutzer bereits gesehen hat. - Überprüfe die geänderten Momente zuerst mit
--stills, rendere dann das vollständige Video einmal. - Behalte denselben Stil über die Runden hinweg bei; wenn eine Anmerkung eine allgemeine Regel impliziert ("keine leeren Ränder", "größere Untertitel"), wende sie überall an, nicht nur im Screenshot.
- Wenn der Benutzer anderes Filmmaterial für eine Aufnahme wünscht, ändere diesen Clip in der EDL (siehe "Clips austauschen" in
references/edl-schema.md) – nichts anderes verschiebt sich.
Andere Werkzeuge
scripts/render_reel.py --stills ...– beliebige Momente als PNGs plus ein Kontaktblatt.scripts/clip_sheet.py– Einzelbilder und Hard-Cut-Zeiten von Kandidatenclips.references/renderer.md– wie der Renderer funktioniert, Geschwindigkeit, Schriftarten, Fehlerbehebung.
Grundregeln
- Filmmaterial: Verwende nur Material, an dem der Benutzer die Rechte hat – eigenes, lizenziertes oder frei lizenziertes Stockmaterial oder für sie generierte Clips. Generierte Personen dürfen nicht wie echte Schauspieler oder Prominente aussehen, und keine berühmten Figuren, Kostüme, Logos oder Filmszenen dürfen nachgestellt werden.
- Jedes Rendern ist eine neue Datei. Überschreibe niemals etwas, das der Benutzer bereits überprüft hat.
- Arbeite in den Projektdateien auf Englisch; sprich mit dem Benutzer in seiner Sprache.