Demo Video Studio
Verwandle eine laufende Web-App in einen filmreifen Demo-Film: echte aufgezeichnete Interaktion (keine Diashow, kein Mock) + lokale TTS-Sprachausgabe + wortgenaue Untertitel + eine dezente Hintergrundmusik, deterministisch komponiert mit HyperFrames.
Wann verwenden
Für jedes Demo-/Walkthrough-/Produkt-/Launch-/Hackathon-Video einer Web-App, besonders wenn das echte Produkt mit Sprachausgabe und Untertiteln gezeigt werden soll. Zeichnet eine deployede URL oder einen lokalen Dev-Server auf.
Pipeline
① record Playwright steuert deine Live-App, sichtbarer Cursor → out/clips/*.webm
② narrate VO pro Szene schreiben → Kokoro TTS (lokal) → narration/*.wav
③ transcribe Whisper Wort-für-Wort-Zeitstempel → *.transcript.json
④ caption in Phrasen gruppieren + Markennamen korrigieren → captions.js
⑤ music ffmpeg Ambient-Musikbett (leise unter der Stimme) → music/bed.wav
⑥ compose HyperFrames HTML-Ein-Timeline: Clips+Stimme+Untertitel+Musik → MP4
Aufzeichnung und Komposition sind unabhängig: Nimm eine Szene neu auf oder führe die Vertonung neu aus, ohne die anderen Schritte zu wiederholen. Eine optionaler, codegenerierter GIF-Track (HTML-Szenen direkt als MP4 ohne Aufnahme) ist ein Nebenpfad für Dokumentationsseiten.
Arbeitsablauf
- Verstehe das Produkt zuerst. Lies die README/Demo-Dokumentation. Schreibe einen Demo-Ablauf, bevor du die Werkzeuge anfasst: Problem → Produkt-Walkthrough → Beleg → Fazit. Wähle den empfohlenen Klickpfad und das sichtbare Ergebnis, das jede Szene erreichen muss. Siehe references/templates.md.
- Aufnehmen. Kopiere
scripts/record.mjs, setzeAPPundSIZE, ersetzescenesmit deiner Choreografie (gleiten → pausieren → handeln → halten). Nimm mit 1:1 Geräteskala auf.node scripts/record.mjs [scene]. Engine + ausgearbeitetes Beispiel: references/recording.md. - Vertonen → Untertitel. Schreibe eine
assets/narration/NN-*.txtpro Szene in VO-Stimme (du sprichst zu einem Zuschauer, nicht liest eine README vor). Dann:bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs. BearbeitePHRASE_FIXinbuild-captions.mjsfür deine Markennamen. Anleitung: references/narration-and-captions.md. - Komponieren & rendern. Starte von references/composition-skeleton.html (ein Clip + Untertitel-Track + Audio), erweitere die Timeline, dann
npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high. Rendere 1:1 (1080p authoring → 1080p Ausgabe) – niemals auf 4K hochskalieren, das macht die UI unscharf. references/composition.md. - QC vor dem Versand. ffprobe für Dauer/Audio, 1–2 Frames prüfen (nicht schwarz, nicht leer), Untertitel im Frame, Vertonung nicht abgeschnitten, die entscheidende Ergebnis-Seite tatsächlich sichtbar. Korrigiere Ablauf/Timing, dann neu rendern.
Schnellstart
# System-Abhängigkeiten
brew install node ffmpeg
npx playwright install chromium
# Python venv für lokale TTS + Transkription (einmalig)
python3 -m venv .ttsvenv && .ttsvenv/bin/pip install kokoro-onnx soundfile
export PATH="$(pwd)/.ttsvenv/bin:$PATH"
# 1) record 2) narrate 3) caption 4) compose+render
node scripts/record.mjs
bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs
npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high --output out/demo.mp4
Beim ersten TTS werden ~340 MB heruntergeladen (Kokoro), beim ersten Transkribieren ~466 MB (Whisper small.en); beide werden in ~/.cache/hyperframes/ zwischengespeichert.
Hart erarbeitete Regeln
- Echte Interaktion schlägt Folien – nimm das tatsächlich laufende Produkt auf.
- 1:1, niemals 2× hochskalieren – Aufnahme bei 2× DPR und Rendering in 4K macht jeden UI-Clip unscharf. Authoring und Rendering bei 1080p.
- Deterministische Komposition – kein
Date.now(),Math.random()oder Netzwerk im HTML; HyperFrames sucht Frames, daher muss Bewegung reproduzierbar sein. - Sichtbarer Cursor + auf Ergebnissen halten – bewusst gleiten, auf dem Payoff pausieren.
- VO, nicht Dokumentation – die Vertonung folgt dem Bild; sie ist nicht die README vorgelesen.
- Video ≥ Vertonung – clip-Zeit polstern, damit die Bilder nie vor der Stimme enden.
Abhängigkeiten
Node 22+, FFmpeg, Playwright (Chromium), und die HyperFrames CLI (npx hyperframes, installiere dessen Skills mit npx skills add heygen-com/hyperframes). Lokales TTS/Whisper benötigt Python + kokoro-onnx. Siehe references/composition.md für die HyperFrames-Einrichtung.
Referenzen
- references/pipeline.md – die sechs Stufen und der Datenfluss
- references/recording.md – Director-Engine + ausgearbeitetes Beispiel + Aufnahmefallstricke
- references/narration-and-captions.md – VO-Schreiben, TTS, Whisper, Untertitel-Korrekturen
- references/composition.md – HyperFrames-Timeline, Crossfades, 1080p, Rendering
- references/composition-skeleton.html – minimale renderbare Komposition zum Kopieren als index.html
- references/templates.md – Hackathon- + Produktdemo-Strukturen und VO-Gerüste
- references/troubleshooting.md – Untertitel, weißer Bildschirm, Audio, Schriftarten