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
- Lese die Stimmung (
music.mood/notes) des Storyboards und die Videolänge. - Durchsuche
studio/library/music/(index.jsonlistet Titel mit Stimmungs-Tags, BPM, Lizenz). Wähle den besten Treffer; falls keiner passt, teile dies mit. - 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;--silencestummt ein Fenster vor einem Enthüllungssound – bei tenser Stimmung folgt danach eine tickende Uhr). Universumsvideo: folgeuniverse.json→music/sfx. Bibliothekstitel: kopiere/konvertiere zuaudio/music.wav; Trimmen, Ein- und Ausblenden sowie Ducking erfolgen im Mix. - Zeichne es in
storyboard.json→music.file,music.source(Titel + Lizenz, oder „code-generated“), optionalmusic.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: falsezum 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.