Video Untertitel
Automatisches Hinzufügen von Untertiteln zu Videos und Einbrennen in das Bild, Ausgabe von „MP4 mit Untertiteln + SRT“.
Pipeline
- Extraktion von 16k Mono-WAV (ffmpeg)
- whisper.cpp Transkription zu SRT (whisper-cli)
- SRT → ASS: Automatischer Zeilenumbruch basierend auf Bildbreite, CJK-Schriftart, zentrierter halbtransparenter Hintergrund unten
- Einbrennen der ASS mit ffmpeg (mit libass), Audiospur wird direkt kopiert
Verwendung
bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
-l/--languageQuellsprache, Standardzh, möglichauto-f/--fontsizeSchriftgröße, Standard 42-s/--srt-onlyNur SRT ausgeben, nicht einbrennen
Wichtige Hinweise
- Transkription vor Auslieferung prüfen: Das Skript gibt die SRT auf dem Terminal aus. Personennamen, Ortsnamen und Redewendungen werden oft falsch erkannt (z. B.: „重阳姐“ → „重阳节“, „久久重扬“ → „九九重阳“). Bei Fehlern verwende
-s, um eine neue Version zu erstellen, korrigiere die SRT und brenne sie dann ein. - Endprodukt überprüfen: Extrahiere 2–3 Frames aus dem finalen Video (
-ss <Sekunden> -frames:v 1), um sicherzustellen, dass die Untertitel vollständig und nicht abgeschnitten oder über den Bildrand hinausragen. - Nicht die Homebrew-Version von
ffmpegverwenden: Diese Build-Version hat kein libass, die Filtersubtitles/ass/drawtextfehlen alle. Das Skript wählt automatisch ffmpeg mit libass aus. Die Installationsanleitung findest du in der README.md. - Lange Sätze müssen umgebrochen werden: ASS verwendet
WrapStyle: 2(erkennt nur\N).srt_to_ass.pyfügt automatisch\Nbasierend aufBildbreite / Schriftgrößeein. Falls ein Satz dennoch überläuft, verkleinere die Schriftgröße mit-f.
Abhängigkeiten
ffmpeg (mit libass) + whisper-cli + ggml-Modell + python3. Fehlende Abhängigkeiten werden vom Skript mit klaren Fehlermeldungen angezeigt. Die vollständige Liste der Bibliotheken, Installationsbefehle und Fehlerbehebungshinweise findest du in README.md.