Ich habe ein Tool gebaut, das aus einem einzigen Skript (YAML) ein Video mit Narration, Untertiteln und BGM erzeugt
(github.com/kmg28801)Weil ich neu im Videoschnitt bin und für ein Video jeweils einen halben Tag brauchte, habe ich den Schnittprozess per Code automatisiert.
Als Eingabe genügt eine einzige YAML-Datei, in der pro Szene narration / visual / callout eingetragen ist.
Mit einer Zeile python3 src/pipeline.py scenario.yaml config.yaml entsteht eine fertige mp4-Datei.
Pipeline (Python):
- Skript → TTS-Narration (say / Supertone / ElevenLabs austauschbar, Ergebnisse werden gecacht)
- Untertitel-Timing wird automatisch passend zur Länge der Narration verteilt, Narration = Untertitel identisch
- Untertitel und Callouts werden als PNG gerendert und per Overlay eingeblendet (gewählt, weil dieser ffmpeg-Build kein libass/drawtext hat — Pixelkontrolle für koreanische Konturen und Positionen ist so sogar einfacher)
- Vertikal aufgenommene Smartphone-Videos werden mit unscharfem Hintergrund-Padding automatisch ans Seitenverhältnis angepasst (per einer config-Zeile zwischen 16:9 ↔ 9:16 Shorts)
- Narration concat + BGM-Mix (BGM wird automatisch auf das Videoende zugeschnitten + Fade → verhindert einen „schwarzen Schwanz“)
- Am Ende des Renderings automatische Prüfung auf Längen-Drift und Helligkeit des letzten Frames
Es ist speziell für faceless Untertitelvideos gedacht, und ich erstelle tatsächlich mit diesem Tool Videos für meinen YouTube-Kanal.
Einschränkungen: Die Untertitel sind nicht wortgenau synchronisiert, sondern szenenweise (proportionale Verteilung nach Zeichenzahl).
Außerdem wurde es unter der Annahme gebaut, dass in dieser Umgebung ffmpeg ohne libass läuft; daher ist PNG-Overlay der Standardweg.
Ziel ist nicht, einen perfekten Editor zu ersetzen, sondern „Skript → Rohvideo“ praktisch in 0 Sekunden zu erzeugen und so die Kosten wiederholter Produktion zu eliminieren.
Smoke-Test (ohne Keys, mit macOS-say-Stimme die gesamte Pipeline prüfen):
python3 -m pip install -r requirements.txt
python3 demo/make_placeholders.py
python3 src/pipeline.py demo/scenario.yaml demo/config.yaml
MIT. Feedback ist willkommen.
Noch keine Kommentare.