Communitygithub.com

SRT-Erklärfilm

Aus einem gesprochenen Text einen Erklärfilm machen: Gliederung, SRT, Storyboard, dann ein in Code gerendertes MP4.

Was ist SRT-Erklärfilm?

Eine Pipeline in fünf Schritten, deren Uhr die Untertiteldatei ist. Gliederung, Text und Storyboard werden bestätigt, danach wird jede Einstellung gerendert und zusammengefügt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zamchudo/srt-driven-video/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

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, verwendet ffmpeg -i stderr 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 von channel="msedge" und die Verwendung des systemeigenen ffmpeg.

Die fünf Phasen im Überblick

PhaseErgebnisBestätigungstor
0 Gliederungoutline.md + EntscheidungstabelleBenutzer bestätigt Gliederung und Entscheidungen
1 Skript+SRTscript.md / subtitles.srt / sprecher-notizen.mdBenutzer bestätigt Skript
2 Storyboardstoryboard.json (muss check_timeline.py bestehen)Benutzer bestätigt Storyboard
3a Erste Szene + Komponentenbibliothekassets/shared/ + scene-001 in niedriger AuflösungBenutzer gibt Stil frei, bevor Serienproduktion startet
3b Szenenweise Serienproduktionscenes/scene-NNN/scene.mp4 × NBenutzer prüft Schlüsselszenen
4 Zusammenstellungoutput/final.mp4 + cover.pngBenutzer 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)

  1. SRT als Zeitbasis: Szenengrenzen liegen auf Untertitelgrenzen, Gesamtabweichung ≤0,1s; python scripts/check_timeline.py <project_dir> überprüft in jeder Phase.
  2. WORKLOG-Weitergabe: Im Projektstamm wird WORKLOG.md erstellt (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.
  3. 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.

Verwandte Skills