Communitygithub.com

visalnaqvi/video-render-skill

Schließt ein Video im Studio ab: wählt oder generiert Musik passend zur Stimmung des Storyboards, platziert Soundeffekte, fügt gebrandete Wort-für-Wort-Untertitel hinzu, mixt auf Social-Lautheit (-14 LUFS) und exportiert das finale MP4 sowie ein Cover.

Was ist video-render-skill?

Dieses Skill ist der letzte Schritt der Studio-Pipeline (Stufe 5: Schreiben → Storyboard → Voiceover → Rendern) und wird aktiviert, sobald das Voiceover freigegeben ist und der Nutzer den finalen Export wünscht. Es liest das genehmigte Storyboard und führt nacheinander sechs Schritte aus: erstens Auswahl oder Generierung von Musik (kostenlos aus der Bibliothek oder per Code, kostenpflichtig nur nach Freigabe), zweitens Platzierung der Storyboard-Soundeffekte (unterstützt Wiederholungen, synchronisiertes Ende und Risers), drittens Mischen des finalen Soundtracks mit Sidechain-Ducking für die Stimme und Normalisierung auf -14 LUFS, viertens Erstellung von gebrandeten Wort-für-Wort-Untertiteln basierend auf den Voice-Timings (inklusive Überspringen von Bildschirminhalten und individueller Positionierung pro Einstellung), fünftens Rendern des MP4-Videos (1080×1920, 30fps, H.264 + AAC) und eines Cover-Bilds sowie Durchführen einer automatischen Qualitätskontrolle (Auflösung, Framerate, Codecs, Länge, Lautstärke). Der letzte Schritt erwartet die Zustimmung des Benutzers, um den Status auf 'final' zu setzen. Das Skill verändert keine Bilder oder Texte – dafür sind die Storyboard- und Voiceover-Skills zuständig. Es eignet sich für Agenten, die Videoproduktionen auf Plattformen wie Claude Code, Cursor oder Codex automatisieren.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/visalnaqvi/video-generator-skill/tree/HEAD/.claude/skills/render

In Ihrer bevorzugten KI fragen

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

Dokumentation

Rendern – Musik, Sound, Untertitel, finaler Export

Eingabe: videos/<video>/ mit einem genehmigten storyboard.json (angepasst an die Stimme: hat audio und timing) und einem genehmigten audio/voice-script.json. Ausgabe:

audio/music.wav        ausgewählte oder generierte Musik
audio/mix.wav          finaler Soundtrack (Stimme + geduckte Musik + SFX), -14 LUFS
audio/mix.json         jedes Soundereignis (Einstellung, Stichwort, Datei, Zeit) zur Prüfung
render/final.mp4       1080×1920 (pro Format), 30 fps, H.264 + AAC
render/cover.png       Vollauflösungs-Cover / Thumbnail
render/qc.json         Qualitätsprüfungsbericht

Diese Stufe ändert keine Bilder oder Texte. Falsche Animation oder Timings → Storyboard-/Voiceover-Skill. Standardmäßig kostenlos: Bibliotheks- oder codegenerierte Musik, codegenerierte Soundeffekte. Kostenpflichtige Musik (KI-Generierung) nur, wenn der Benutzer danach fragt oder einem Kostenvoranschlag zustimmt.

Schritt 1 – Musik

  1. Lese die Stimmung (music.mood / notes) des Storyboards und die Videolänge.
  2. Durchsuche studio/library/music/ (index.json listet Titel mit Stimmungs-Tags, BPM, Lizenz). Wähle den besten Treffer; falls keiner passt, teile dies mit.
  3. Kein Treffer → generiere den kostenlosen Fallback mit dem Drop („Einsatz“) zu Beginn der Enthüllungseinstellung (Startzeit der Szene – berechnet aus Dauern/Übergängen): node studio/scripts/make-music.mjs --out videos/<video>/audio/music.wav --duration <s> --mood upbeat|calm|cinematic|tense --bpm <n> --drop <s> [--silence <von>-<bis>] (tense: Moll-Tonart, Herzschlag-Puls, ungelöstes Ende; --silence stummt ein Fenster vor einem Enthüllungssound – bei tenser Stimmung folgt danach eine tickende Uhr). Universumsvideo: folge universe.json → music / sfx. Bibliothekstitel: kopiere/konvertiere zu audio/music.wav; Trimmen, Ein- und Ausblenden sowie Ducking erfolgen im Mix.
  4. Zeichne es in storyboard.json → music.file, music.source (Titel + Lizenz, oder „code-generated“), optional music.db (Standard -16 dB vor dem Ducking).

Schritt 2 – Soundeffekte

Stichworte befinden sich bereits in jeder Einstellung als sfx (einfache Wörter, durch die Voiceover-Stufe an Bilder oder gesprochene Wörter gebunden). Der Mixer bildet Wörter auf Sounds ab via studio/library/sfx/index.json (generiert von node studio/scripts/make-sfx.mjs; eigene Sounds kommen in custom, werden zuerst geprüft). repeat + every spielen ein Stichwort mehrfach ab; syncEnd: true platziert es am Ende der Einstellung; Riser enden auf ihrem Stichwort. Übergangs-Whooshes sind optional (--auto-whoosh) – der Benutzer bevorzugt zurückhaltende Sounds: nur markante Momente (≈ maximal 1 Stichwort pro 2 s, bei den meisten Übergängen keines). Falls ein Storyboard deutlich mehr Stichworte enthält, reduziere sie auf die Schlüsselmomente vor dem Mischen und teile dies mit. Behebe „Kein Sound gefunden“-Zeilen des Mixers durch Hinzufügen von Schlüsselwörtern oder einem eigenen Sound – ändere niemals das Design des Storyboards.

Schritt 3 – Mix

node studio/scripts/mix.mjs videos/<video> (--dry für eine Vorschau der Ereignisanzahl)

Die Stimme bleibt oben; Musik wird durch die Stimme geduckt (Sidechain) und blendet am Ende aus; SFX bei -12 dB (--sfx-db oder storyboard.sfxDb); Master begrenzt und normalisiert auf -14 LUFS / -1.5 dBTP. Setzt storyboard.finalAudio. Nach jeder Audioänderung erneut ausführen.

Schritt 4 – Untertitel

Standardmäßig aktiviert für soziale Formate. In storyboard.json: "captions": { "enabled": true, "y": 83, "size": 50, "skipLines": ["L11"] }

  • Phrasen (≤ 4 Wörter, ausgewogen, an Pausen geteilt) stammen aus den Voice-Timings; das gesprochene Wort wird in der Marken-Highlight-Farbe hervorgehoben.
  • skipLines: VO-Zeilen, deren Wörter bereits auf dem Bildschirm sind (Telefonnummern, URLs).
  • Pro Einstellung: captionY (% des Bildrahmens) zum Verschieben, captions: false zum Ausblenden, wenn die gleichen Wörter auf dem Bildschirm sind (z. B. ein Name unten rechts).
  • Halte sie innerhalb der Sicherheitszone (Standard 83%) und fern von wichtigen Designelementen.

Prüfe mit einem Kontaktbogen (Untertitel erscheinen auf Bildern, in denen jemand spricht): node studio/scripts/render.mjs videos/<video>/storyboard.json --sheet --scale 0.25 --out <scratchpad>/captions-sheet.png Einmal ansehen; Kollisionen mit captionY / captions: false beheben.

Schritt 5 – Finales Rendern, Cover, QC

node studio/scripts/render.mjs videos/<video>/storyboard.json --final
node studio/scripts/render.mjs videos/<video>/storyboard.json --cover
node studio/scripts/qc.mjs videos/<video>

QC muss bestehen: Auflösung, Bildrate, Codecs, Länge = Storyboard, Lautstärke -14 ±1,5 LUFS. Warnungen (True Peak, stille Lücken, schwarze Bilder) → erklären oder beheben. Sieh dir das MP4 nicht an; sende render/final.mp4 (und das Cover) an den Benutzer mit der QC-Zusammenfassung und Informationen zum Mix (Musikquelle, Anzahl Soundereignisse, Untertitel an/aus).

Schritt 6 – Freigabe

Benutzer zufrieden → "status": "final" in storyboard.json → render, erledigt. Änderungen: Musik-/Sound-/Untertitel-Anpassungen → Schritte 1–5 hier; visuelle oder Timing-Änderungen → Storyboard-/ Voiceover-Skill, dann diese Stufe erneut ausführen.

Individual skills in this repo

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

Verwandte Skills