SRT-Driven Video (SRT-gesteuerte Video-Pipeline)
Verwandle ein gesprochenes Skript in ein Erklärvideo mit codegenerierten Visualisierungen. SRT ist die einzige zeitliche Referenz; die Pipeline besteht aus fünf Phasen, die jeweils nach Abschluss anhalten und auf Benutzerbestätigung warten.
Umgebung und Abhängigkeiten
- Windows: Playwright (
channel="msedge", verwendet nativen Edge, kein Chromium-Download erforderlich) + imageio-ffmpeg (stellt ffmpeg bereit; enthält kein ffprobe, verwendetffmpeg -istderr zur Auflösungsanalyse). - Abhängigkeiten installieren:
pip install playwright imageio-ffmpeg(die Skripte kümmern sich um die ffmpeg-Pfadfindung). - Die Skripte in
scripts/sind für Windows getestet und optimiert; Linux/macOS benötigen das Entfernen vonchannel="msedge"und die Verwendung des systemeigenen ffmpeg.
Die fünf Phasen im Überblick
| Phase | Ergebnis | Bestätigungstor |
|---|---|---|
| 0 Gliederung | outline.md + Entscheidungstabelle | Benutzer bestätigt Gliederung und Entscheidungen |
| 1 Skript+SRT | script.md / subtitles.srt / sprecher-notizen.md | Benutzer bestätigt Skript |
| 2 Storyboard | storyboard.json (muss check_timeline.py bestehen) | Benutzer bestätigt Storyboard |
| 3a Erste Szene + Komponentenbibliothek | assets/shared/ + scene-001 in niedriger Auflösung | Benutzer gibt Stil frei, bevor Serienproduktion startet |
| 3b Szenenweise Serienproduktion | scenes/scene-NNN/scene.mp4 × N | Benutzer prüft Schlüsselszenen |
| 4 Zusammenstellung | output/final.mp4 + cover.png | Benutzer bestätigt endgültiges Video |
Ausführliche Schritte, Entscheidungstabellenfelder und häufige Fallstricke (imageio-ffmpeg fehlt filter_complex_script, alimiter level-Trap usw.) finden Sie in references/pipeline.md.
Drei Kernvereinbarungen (nicht überspringbar)
- SRT als Zeitbasis: Szenengrenzen liegen auf Untertitelgrenzen, Gesamtabweichung ≤0,1s;
python scripts/check_timeline.py <project_dir>überprüft in jeder Phase. - WORKLOG-Weitergabe: Im Projektstamm wird
WORKLOG.mderstellt (Vorlage in references/worklog-template.md), einziger Zustandsspeicher über Sitzungen hinweg; Entscheidungstabelle nach Verriegelung nicht mehr ändern; Basisdaten (Gliederung/Skript/SRT/Notizen/Storyboard/assets/shared/Szenen) ab Phase 3/4 eingefroren. - Phasen-Bestätigungstor: Nach jeder Phase wird berichtet und angehalten, bis der Benutzer explizit bestätigt, bevor die nächste Phase beginnt.
Szenen-Rendering (Phase 3)
Jede Szene ist eine eigenständige HTML-Seite mit deterministischem Rendering via window.setTime(t) (alle Animationen sind reine Funktionen von t); Untertitel-Branding verwendet ein einheitliches Vertragselement div#subtitle. Vollständiger Entwicklungsvertrag, Qualitätskontrolle (check_frames.py erstellt Keyframe-Collagen) und Design-Richtlinien in references/visual-authoring.md.
Startvorlage: assets/neon-theme/ (bereits abgestimmter Cyberpunk-Neon-Stil mit theme.css + components.js, einschließlich Partikel, zeichenweises Einfliegen, Datenkarten, Vergleichsbalken, Risikofarbcodierung, Übergänge, Untertitel-Komponenten) – Benutzer können denselben Stil durch Kopieren nach assets/shared/ übernehmen; andere Stile dienen als strukturelle Vorlage.
python scripts/render_scene.py scenes/scene-001 --duration 10.5 --fps 30 --size 960x540 # niedrige Auflösung
python scripts/check_frames.py scenes/scene-NNN --times 0.5,3,6,9.2 # Qualitätsprüfung vor dem Rendern
python scripts/render_all.py . # Serienproduktion aller Szenen
python scripts/render_all.py . --no-subtitle --outdir output/nosub # Variante ohne Untertitel
python scripts/concat_final.py . # Zusammenstellung + Cover
Optionales Soundmodul (standardmäßig deaktiviert)
Nur aktivieren, wenn der Benutzer explizit Soundeffekte wünscht, und dann in Phase 0 in der Entscheidungstabelle festlegen. Material von Freesound CC0 (Lizenzen einzeln prüfen), Zeitplan in assets/sfx/mix_timeline.json mit Vorschau für den Benutzer; zwei Auslieferungswege: FFmpeg automatischer Mix (mix_sfx.py) oder Export einer Cue-Sheet für Jianying (make_cue_sheet.py) für manuelles Hinzufügen – letzteres ist stabiler. Vollständiger Ablauf in references/sound.md.
Referenzierte externe Skills / Tools
- vibe-motion/sound (GitHub, klonen nach tools/sound/): Freesound-Such-/Download-CLI. Repository ohne Lizenz, nur als internes Download-Tool; Lizenz gilt pro Soundeffekt gemäß Freesound CC0-Erklärung.
Lieferumfang
final.mp4: 1920×1080 / 30fps / h264 / yuv420p, Länge exakt passend zur SRT-Gesamtspanne; cover.png als Standbild des Höhepunkts (ermittelt durch Stichproben); nach Prüfung von Dauer, Bildanzahl, Spezifikationen und Audiopegel wird WORKLOG aktualisiert und Bericht erstattet.