Communitygithub.com

fabrica-videos-reels

Produziert ein Kunden-Reel mit freigegebenem Drehbuch und Storyboard vor der Aufnahme, lippensynchronen Animationen, Synchronisation mit der Aufnahme und finalem Render. Verwende es, wenn der Kunde ein Video, Reel oder ein neues Drehbuch anfordert oder um ein bereits verschriftlichtes Video fortzusetzen (z.B. "/fabrica-videos-reels <thema>" oder "ich habe <slug> aufgenommen").

Was ist fabrica-videos-reels?

Diese Skill führt einen vollständigen Workflow zur Reel-Produktion aus, bei dem das Drehbuch und Storyboard vor der Aufnahme freigegeben werden. Sie ist Teil der "Fábrica de Vídeos Agêntica" und folgt einem "Drehbuch-zuerst"-Ansatz. Der Prozess beginnt mit der Erstellung eines Drehbuchs (Schritt 1), gefolgt von der Erstellung eines Storyboards mit visuellen Vorschlägen (Schritt 2) und schließlich dem Bau der Komposition mit Remotion (Schritt 3). Nach der Aufnahme des Kunden (Schritt 4) wird das Filmmaterial mit dem Drehbuch synchronisiert, das Bild wird eingerahmt und das finale Video wird in voller Auflösung und Bildrate der Aufnahme gerendert (bis zu 4K 60fps). Die Skill unterstützt mehrere Reels als Serie, optionale Soundeffekte und automatische Untertitelverbrennung. Der gesamte Code bleibt außerhalb des Git-Repositorys im Arbeitsverzeichnis "trabalho", um Größe und Sicherheit zu gewährleisten. Der Workflow verwendet Remotion für die Videoproduktion und verschiedene Node.js-Skripte für die Konvertierung, Transkription und Synchronisation.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eduardogalbiati/fabrica-de-video-skills/tree/HEAD/.claude/skills/fabrica-videos-reels

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

/fabrica-videos-reels — vom Drehbuch zum MP4

Skill der Fábrica de Vídeos Agêntica (siehe Skill fabrica-videos). Es ist der Weg "Drehbuch zuerst": Der Kunde genehmigt Drehbuch und Storyboard, bevor aufgenommen wird. Wenn er bereits ohne Drehbuch aufgenommen hat, verwende die Skill fabrica-videos-rapido.

Sprich Portugiesisch, in einfacher Sprache (wer das Video bestellt, programmiert fast nie). Zeige den Fortschritt mit gerenderten Vorschauen, nicht mit Code. Bevor du Remotion-Code schreibst, lies CLAUDE.md (Regeln des Designsystems, wo jede Datei liegt und die Befehle) und, falls die offiziellen Remotion-Skills installiert sind, die remotion-best-practices. Das vollständige und genehmigte Beispiel ist das Video Exemplo: roteiros/exemplo*.{md,json} + src/videos/Exemplo.tsx. Kopiere seine Struktur.

Alle Befehle laufen im Terminal, im Stammverzeichnis des Projekts. In den Tabellen unten ist TRABALHO der Ordner trabalho (außerhalb des Git).

0. Finde heraus, in welcher Phase sich das Video befindet

Wähle einen kurzen slug (z.B.: minha-ideia) und schau, was bereits existiert:

Existiert…Dann gehe zu
nichts1. Drehbuch
roteiros/<slug>.md genehmigt, ohne -animacoes.md2. Storyboard
Storyboard, ohne src/videos/<Nome>.tsx3. Bauen
fertige Komposition + neue Aufnahme (er sagt, wo er sie gespeichert hat)4. Aufnahme
TRABALHO\out\<slug>-final.mp45. Lieferung

Sage in einer Zeile, in welcher Phase du dich befindest, und fahre fort. Phasen 1 und 2 sind Gespräche: Vorschlagen, zuhören, verfeinern; gehe nur mit seiner Zustimmung weiter.

1. Drehbuch → roteiros/<slug>.md

  • Erstelle das Drehbuch hier im Gespräch mit dem Kunden. Frage nach: Thema (oder Referenzlinks/-videos), Säule (eines der Markenthemen), Ziel-Länge (30–60 s ≈ 2,5 Wörter/s).
  • Struktur wie roteiros/exemplo.md: Blöcke mit geschätztem Beginn, Sprechtext, Karte; Wörterbuch der Analogien, wenn das Publikum Laien ist; zusammenhängender Text zum Aufnehmen; benötigte Screenshots; Fakten mit Links geprüft.
  • Stimme (an die Person anpassen; ihre Regeln bleiben bei der Marke): erste Person, kurze Sätze, konkrete Zahlen; Haken in den ersten 3 Sekunden; niemals "revolutionär"/"die Zukunft ist da"; schließt mit einer Frage + CTA. Alarm wird zu Frage, nicht zu Behauptung. Erfinde keine Nachricht.

2. Storyboard → roteiros/<slug>-animacoes.md + roteiros/<slug>.ancoras.json

  • Pro Takt (visueller Wechsel alle 2–3 s): Zeit, Satz, was oben erscheint (Bereich 1080×960).
  • Verwende Teile aus src/pecas/ wieder, bevor du neue erstellst: RedeNeural + Bisturi (das "Gehirn" der KI), GradeConexoes, LoopPensando, Lupa, ContadorBarra, TrocaPrints, TextoRiscado (Modi riscar/somar), OlhoRiscado, LinhaVersoes; Helfer TituloCena, Halo, RotuloMono, aparece in util.tsx.
  • ancoras.json: { "cena": "erste darin gesprochene Wörter" } in der Reihenfolge des Sprechens. Vermeide Eigennamen in den Ankern (Whisper macht Fehler: "Qwen"→"quen", "Claude"→"clou", "OpenAPI"→"OpenAI", und auch "Vercel", "MCP", "JSON"). Interne Takte einer Szene (z.B. der Moment des Durchstreichens) werden ebenfalls zu Ankern.

3. Bauen → src/videos/<Nome>.tsx

  1. Kopiere das Skelett von Exemplo.tsx: Zod-Schema (Säule, Video, Bildausschnitt, mostrarGuia, Name, Position, Screenshots, Schluss, tempos), TelaDividida außen, eine <Sequence> + <Cena> (Fade von 6 Frames) pro Szene, Encerramento von 2 s am Ende. Registriere in src/videos/index.tsx, innerhalb von <Folder name="Videos"> mit calculateMetadata (Dauer = duracaoFala + 2 s).
  2. Jede Szene ist eine eigene Komponente, die useCurrentFrame() aufruft (rufe niemals Hooks innerhalb von Funktionen eines Objekts/Arrays in der übergeordneten Komponente auf: Der Frame kommt falsch heraus). Importiere useCurrentFrame, useVideoConfig und Sequence aus src\relogio.tsx, nicht aus remotion: Die Frames werden mit 30 pro Sekunde geschrieben und die Uhr kümmert sich um den Rest, wenn das Video mit 60 ausgegeben wird.
  3. Neue Teile gehen nach src/pecas/ (generisch, mit Props), gemäß den Tokens von src/animacoes/tema.ts.
  4. Screenshots und Bilder des Teils (kleine Dateien): Speichere in public\<slug>\ dieses Ordners und führe npm run preparar aus.
  5. Vorläufiger Sprechtext zum Testen vor der Aufnahme: Zeichne den zusammenhängenden Text in roteiros/<slug>.fala.txt (UTF-8) auf und führe npm run fala -- <slug> roteiros\<slug>.fala.txt → TRABALHO\public\previa\fala-<slug>.mp4 (Systemstimme, 1080×960) aus. Dann npm run legendar + npm run batidas (Abschnitt 4), um src/videos/<slug>.tempos.json zu generieren, mit der Prop video = "previa/fala-<slug>.mp4".
  6. Überprüfe: npx tsc und das Kontaktblatt mit aktiviertem Leitfaden: npm run folha -- <Id> src\videos\<slug>.tempos.json → TRABALHO\out\folha-<Id>.jpg (1 Frame vom Ende jeder Szene). Betrachte das Bild: Nichts in Rot (oben 270, unten 320, Seiten 96, Buttons rechts), nichts überlappend, Texte passend.
  7. Rendere die Vorschau: npm run renderizar -- <Id> "trabalho\out\previa-<slug>.mp4" previa (leicht, 540×960; sage, dass es eine Vorschau ist) und sende sie ihm.

4. Echte Aufnahme → Synchronisieren und Einrahmen

  1. Finde die neue Aufnahme (frage, wo er sie gespeichert hat). Kopiere das Original nach TRABALHO\originais\ (niemals verschieben oder ändern) und konvertiere: npm run converter -- "trabalho\originais\<datei>" <slug> → TRABALHO\public\gravacao-<slug>.mp4 (hochkant, H.264, normale Farben, in der Auflösung und den Bildern pro Sekunde der Aufnahme: 4K bei 60 bleibt 4K bei 60, und das Endvideo wird auch so ausgegeben. HDR ist die Ausnahme: wird zu SDR, und der Konverter warnt. Mit ate=12 am Ende des Befehls werden nur die ersten 12 s konvertiert, für einen schnellen Test). Der Konverter prüft die Datei mit ffprobe und, wenn es 4K HDR (aktuelles iPhone) ist, behandelt er HDR mit zscale + tonemap (sonst sind die Farben ausgewaschen). Bei der ersten HDR-Aufnahme jeder Sitzung extrahiere einen Frame aus der Konvertierten und zeige ihn ihm zum Vergleich mit dem Handy.
  2. npm run legendar -- "trabalho\public\gravacao-<slug>.mp4" (im Hintergrund, ~1–2 Min) → legendas/gravacao-<slug>.json. Wenn die Aufnahme lange Pausen, Fehler oder wiederholte Takes hat, bereinige sie vor dem Fortfahren (die Skill fabrica-videos-corte): Ab dann ist das Video gravacao-<slug>-limpa.mp4 und die Transkription ist die des bereinigten Videos.
  3. npm run batidas -- legendas\gravacao-<slug>.json roteiros\<slug>.ancoras.json src\videos\<slug>.tempos.json "<video>". Wenn ein Anker fehlt, lies die Transkription und passe den Satz an. Wenn er die Bedeutung eines Satzes geändert hat, passe die Animation an (z.B.: "nicht nur von einer Person" → TextoRiscado modo="somar" anstatt durchzustreichen) und teile ihm das mit.
  4. duracaoFala ≤ Dauer des Videos (sonst bleibt ein Augenblick ohne Bild darunter): Mit dem Video am Ende des obigen Befehls begrenzt batidas bereits automatisch; ohne ihn, korrigiere von Hand.
  5. Bildausschnitt (das Gesicht muss zwischen dem Untertitelband, y 985–1125, und der unteren Zone, y 1600, bleiben): Teste den Ausschnitt an ~12 Momenten mit ffmpeg -ss <t> -i <video> -frames:v 1 -vf "crop=1080:960:0:<offset>" "trabalho\out\enq-<t>.png" und betrachte jedes Bild. enquadramento = "50% <offset/960*100>%" (für Quelle 1080×1920). Das ganze Gesicht im Bild das ganze Video über. Das Kinn darf die untere Zone berühren; der Mund niemals. Teste auch, wenn er sich der Kamera nähert, und verwende den größten Offset, bei dem der Kopf nie oben herausragt.
  6. Überprüfe das Namensbanner: Wenn es das Gesicht bedeckt, bleibt es in der oberen Hälfte (das ist bereits der Standard von TelaDividida).
  7. Endgültiger Render im Hintergrund: npm run renderizar -- <Id> "trabalho\out\<slug>-final.mp4"; überprüfe Dauer/Auflösung mit ffprobe und sende das Video.
    • Die Qualität, die reinkommt, ist die, die rauskommt. renderizar liest die Auflösung und die Bilder pro Sekunde der Aufnahme und das Finale wird darin ausgegeben: Aufnahme in 4K bei 60, Ausgabe in 2160×3840 bei 60. Verwende nicht direkt npx remotion render für das Finale: Es kommt immer in 1080×1920 bei 30 raus.
    • Nur mit Parameter reduzieren, und nur wenn er es im Skill-Aufruf anfordert (z.B.: /fabrica-videos-reels <slug> 1080p): 1080p reduziert die Auflösung und 30fps reduziert die Bilder pro Sekunde (npm run renderizar -- <Id> "<ausgabe>.mp4" 1080p 30fps). Ohne Parameter nicht reduzieren.
    • HDR fällt nicht unter die Regel: Remotion zeichnet nur in normalen Farben. Wenn die Aufnahme in HDR kam, sage ihm, dass das Finale in SDR ausgegeben wird.
    • Render in 4K bei 60 hat achtmal mehr Bild zu zeichnen als in 1080p bei 30. Warne vorher, dass es dauern wird.

5. Lieferung

  • Schließe mit der Skill fabrica-videos-entrega ab (technische Prüfung, Cover, Kontaktblatt und NOTAS.md). Die Punkte unten sind die, die für diesen Ablauf spezifisch sind.
  • Wenn er später Untertitel in einer Bearbeitungs-App hinzufügen möchte, erkläre, wo er die Untertitel platzieren soll: direkt unter der Trennlinie (in der Farbe der Säule) (grüner Bereich des Leitfadens), maximal 2 Zeilen. Wenn er bereits eingebrannte Untertitel im Video bevorzugt, siehe Skill fabrica-videos-legendas (Bestandteil LegendaQueimada, Position faixa).
  • Weise auf Namen hin, die die Transkription normalerweise falsch schreibt.
  • Post-Beschreibung: Wenn er darum bittet, schreibe einen Vorschlag in NOTAS.md (Aufhänger, 2–3 Sätze mit den genauen Zahlen, eine Frage + denselben gesprochenen CTA, Quelle, bis zu 3 Emojis, 4–6 Hashtags, ohne Übertreibungen, die die Studie nicht stützt).
  • Registrierung in entregas\AAAA-MM-DD-<slug>\: NOTAS.md (ID der Komposition, verwendete Befehle, Pfad der Aufnahme und des Finales, Dauer, Bildausschnitt, was er an der Sprache geändert hat), capa.jpg und das Kontaktblatt. Das Endvideo bleibt in TRABALHO\out\.
  • Nach der Genehmigung entferne die Aufnahme aus TRABALHO\public\ und speichere sie in trabalho\arquivo\AAAA-MM-DD-<slug>\ (Remotion kopiert das gesamte public bei jedem Render; ein voller Ordner macht alles langsam). Notiere den neuen Pfad in NOTAS.md.
  • Nie veröffentlichen, planen oder senden. Wer veröffentlicht, ist der Kunde.

Bereits gelöste Fallstricke (nicht wiederholen)

  • Halo: Verwende <Halo> (div mit filter: blur), nicht box-shadow auf transparentem Element (wird zu einer dunklen "Pille").
  • Hervorhebung mehrerer Wörter: *10 tarefas* muss als Abschnitt behandelt werden, nicht Wort für Wort (siehe TextoImpacto/Destaque).
  • Zentrierte Beschriftungen an Punkten (z.B. v1) benötigen zusätzlichen Spielraum, um den Rand von 96 px nicht zu überschreiten.
  • PowerShell: Direktes JSON in --props='{...}' verliert die Anführungszeichen. Speichere in einer Datei und verwende --props=datei.json.
  • Aufnahme oder Video innerhalb des Projekts landet im Repository: immer in TRABALHO.
  • Der Port des Studios ist 3210.

Serien (mehrere Reels zum selben Thema)

  • Ein Slug pro Episode (<serie>-<n>-<thema>) und, wenn der Kunde darum bittet, eine Sitzung pro Episode. Parallele Sitzungen teilen sich denselben Ordner: Jede bearbeitet nur die Dateien ihres Slugs; in src/videos/index.tsx lies vor dem Bearbeiten erneut und füge nur deine <Composition> hinzu; ändere keine gemeinsam genutzten Teile.
  • Fakten und Entscheidungen, die für alle gelten (eine Zahl, die sich geändert hat, der CTA, die Säule), müssen gleichzeitig an alle Sitzungen weitergegeben werden. Ohne das hat jedes Video eine andere Regel.
  • Serien-Abschlussbild: src/pecas/TelaFinalReels.tsx anstelle von Encerramento, 4 s nach der Sprache (Dauer = duracaoFala + telaFinalSeg). Zwei leere 9:16-Bereiche (400×711), die er mit Reels in der Bearbeitungs-App abdeckt: einer für das nächste Kapitel (das letzte kehrt zum ersten zurück), einer für das Reel, das die Serie gestartet hat.

Töne (optional, nur wenn er darum bittet oder bereits genehmigt)

  • Vier kurze Töne in einem Ton-Ordner innerhalb von public (bringe deine eigenen mit, mit klarer Lizenz: Das Repository enthält keine Töne): abertura.mp3 (Riser beim Aufhänger, Lautstärke ~0,35), tecla.mp3 (bei jedem eingehenden Element, ~0,3), whoosh.mp3 (beim Wendepunkt/Zoom, ~0,2), blip.mp3 (wenn die Zahl oder die endgültige Antwort kommt, ~0,3).
  • Jeder Ton ist eine kurze <Sequence> mit <Audio> von @remotion/media, gebunden an dieselben Zeiten der Szenen; Pfad und Lautstärke stehen in Props des Schemas (leerer String schaltet aus).
  • Nach dem Render messe die Spitze mit ffmpeg -i <video> -af volumedetect -vn -f null - (muss unter 0 dB liegen und die Töne unter der Stimme). Du kannst nicht hören: Sage ihm, dass die Hörprüfung bei ihm liegt.

Aufnahme-Lektionen

  • Wer ohne Drehbuch aufnimmt, spricht normalerweise Satz für Satz, mit langen Pausen, wärmt sich auf, bevor er beginnt, wiederholt den Satz, den er nicht mochte, und verlässt das Bild am Ende. Die Skill fabrica-videos-corte löst das alles.
  • Es ist üblich, dass die Person beim Aufnehmen die Sprache ändert. Lies die gesamte Transkription, bevor du den Ankern vertraust, und passe Bildschirm und Post-Untertitel an das tatsächlich Gesagte an.
  • Wenn die Sprache kürzer ist als das Drehbuch, werden die Details und Zahlen, die daraus weggefallen sind, auf dem Bildschirm geschrieben.
  • Beim Austausch einer Tatsache (z.B. einer aktualisierten Zahl) tausche sie überall aus: Sprache, Bildschirm, Titel, Post-Untertitel und Cover.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills