CLI-Untertitel-Workflow: erzeugen, konvertieren und einbrennen
Untertitel schnell und reproduzierbar zu verwalten, ist entscheidend für barrierefreie, mehrsprachige Videos. Tools für die Kommandozeile (Command-Line Interface, CLI) glänzen hier, weil sie sich gut skripten lassen, mit CI/CD harmonieren und langsame, klickintensive GUIs vermeiden. Dieser Leitfaden führt durch einen kompletten Workflow – Untertitel erzeugen, konvertieren, einbetten oder einbrennen – mit Open-Source-Werkzeugen, die Sie mit einem einzigen Befehl installieren.
Warum CLI-Tools für die Untertitelverwaltung nutzen?
Mit CLI-Programmen können Sie:
- Hunderte Videos stapelweise verarbeiten, ohne die Maus anzufassen,
- Aufgaben in GitHub Actions, Jenkins oder Cronjobs automatisieren,
- erstklassige Tools beliebig kombinieren, statt sich auf eine monolithische App zu verlassen, und
- Ergebnisse exakt reproduzieren, indem Sie Ihre Befehle in die Versionsverwaltung übernehmen.
Wenn Ihr Team ohnehin Code aus dem Terminal ausliefert, hält es die Pipeline konsistent, Untertitel auf dieselbe Weise hinzuzufügen.
Untertitel mit Whisper oder subsai erzeugen
Moderne Speech-to-Text-Modelle machen die automatische Untertitelung endlich genau genug für den Produktiveinsatz. OpenAIs Whisper ist das Arbeitspferd, und subsai ergänzt einen komfortablen Wrapper sowie einige zusätzliche Bearbeitungstricks.
Whisper
# Create a virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate
# Install whisper
pip install git+https://github.com/openai/whisper.git
# Generate english subtitles in SRT format
whisper video.mp4 --model base --output_format srt --language en
- Wählen Sie
tinyodersmallfür Geschwindigkeit,mediumoderlargefür höhere Genauigkeit. - Nutzen Sie
--device cuda, wenn eine NVIDIA-GPU verfügbar ist; das verkürzt die Laufzeit drastisch.
Subsai
pip install git+https://github.com/absadiki/subsai.git
# Same result as above, with some post-processing niceties
subsai video.mp4 --model base --output subtitles.srt
Beide Tools geben Untertitel mit Zeitstempeln aus, die ohne Nachbearbeitung meist zu 95 %–98 % korrekt sind. Eine kurze manuelle Durchsicht mit einem Untertitel-Editor wie Aegisub schließt die Arbeit ab.
Zwischen Formaten mit Subtitle Edit CLI konvertieren
Sie brauchen WebVTT fürs Web oder ASS für anspruchsvolles Styling? Subtitle Edit – bekannt für seine GUI – bietet auch eine plattformübergreifende CLI.
# For Ubuntu/Debian, use the .Net version
sudo apt-get install -y dotnet-sdk-8.0
# Install the global tool
dotnet tool install --global SubtitleEdit.CLI
# Convert SRT ➜ VTT
SubtitleEdit.CLI convert input.srt output.vtt
# Convert SRT ➜ ASS
SubtitleEdit.CLI convert input.srt output.ass
Subtitle Edit unterstützt mehr als 200 Formate, die Chancen stehen also gut, dass es auch Ihr gewünschtes Format beherrscht.
Zuschaltbare Untertitel mit mkvtoolnix einbetten
Zuschaltbare Untertitel liegen als eigene Spur im Container. Sie lassen sich ein- und ausblenden, gestalten oder ersetzen, ohne den Videostream anzutasten.
# Install mkvtoolnix (Ubuntu/Debian)
sudo apt-get install mkvtoolnix
# Embed subtitles
mkvmerge -o output.mkv video.mp4 subtitles.srt
Sie möchten mehrere Sprachen?
mkvmerge -o output.mkv \
video.mp4 \
--language 0:eng subs_en.srt \
--language 0:spa subs_es.srt
Player wie VLC, mpv und die meisten Smart-TV-Apps zeigen automatisch eine Sprachauswahl an.
Untertitel mit FFmpeg einbrennen (fest codieren)
Eingebrannte Untertitel werden in die Videopixel gezeichnet und garantieren 100 % Kompatibilität, allerdings auf Kosten der Flexibilität.
# Plain SRT burn-in
ffmpeg -i video.mp4 -vf "subtitles=subtitles.srt" -c:v libx264 -crf 20 -preset veryfast output.mp4
# Custom styling, white text, 24 pt font
affinity='FontSize=24,PrimaryColour=&HFFFFFF&'
ffmpeg -i video.mp4 -vf "subtitles=subtitles.srt:force_style='${affinity}'" \
-c:v libx264 -crf 20 -preset veryfast output-styled.mp4
# Ass/ssa subtitles retain their own styling
affinity_file=subtitles.ass
ffmpeg -i video.mp4 -vf "ass=${affinity_file}" -c:v libx264 -crf 20 -preset veryfast output-ass.mp4
Verwenden Sie -c:v h264_nvenc oder -c:v hevc_nvenc, um eine NVIDIA-GPU zu nutzen und die Encoding-Zeit zu verkürzen.
Alles mit einem Shell-Skript automatisieren
Unten steht ein Bash-Skript, das einige der vorherigen Befehle miteinander verbindet. Legen Sie es
unter subtitles.sh ab, machen Sie es ausführbar und richten Sie es auf ein Verzeichnis mit Dateien vom Typ .mp4.
#!/usr/bin/env bash
set -euo pipefail
# Create a function for processing
process_video() {
local video="$1"
echo "Processing ${video}..."
# Generate subtitles
# Whisper output is e.g. video.srt for video.mp4.
whisper "$video" --model base --output_format srt --language en
# Convert to VTT if needed
# This assumes whisper created ${video%.mp4}.srt
SubtitleEdit.CLI convert "${video%.mp4}.srt" "${video%.mp4}.vtt"
# Create soft-subbed version
# This also assumes ${video%.mp4}.srt exists
mkvmerge -o "${video%.mp4}_subbed.mkv" "$video" "${video%.mp4}.srt"
}
# Process all MP4 files
for video in *.mp4; do
process_video "$video"
done
Sie können das gerne in einen CI-Job einbauen, damit jedes neue Video, das im Repository landet, automatisch Untertitel erhält.
Tipps zu Performance und Skalierung
- Wählen Sie das richtige Whisper-Modell. Das Modell
tinyverarbeitet auf einer CPU annähernd in Echtzeit;largekann 10× langsamer sein, erkennt aber knifflige Wörter. - Nutzen Sie GPUs, wann immer möglich. Sowohl Whisper (
--device cuda) als auch FFmpeg (-hwaccel cuda) erzielen auf moderner Hardware 5×–10× mehr Leistung. - Parallelisieren Sie mit Bedacht. Whisper ist CPU-/GPU-gebunden, daher ist eine Instanz pro GPU meist optimal. Zu viele gestartete Prozesse können alles verlangsamen.
- Cachen Sie Ergebnisse. Speichern Sie erzeugte Dateien vom Typ
.srt, damit bei erneuten Durchläufen nur noch transkodiert wird.
Zuschaltbare vs. eingebrannte Untertitel
| Zuschaltbar | Eingebrannt | |
|---|---|---|
| Umschaltbar? | Ja | Nein |
| Mehrere Sprachen | Ja | Eine pro Datei |
| Player-Unterstützung | Erfordert untertitelfähigen Player | Jeder Player |
| Auswirkung auf die Dateigröße | Vernachlässigbar | Neu-Encoding erhöht die Größe |
| Später bearbeitbar | Einfach | Unmöglich |
Wählen Sie zuschaltbare Untertitel für Streaming-Plattformen und Flexibilität bei der Bearbeitung. Nutzen Sie eingebrannte Untertitel, wenn Sie die Wiedergabeumgebung nicht kontrollieren können oder ein fest eingebranntes Branding benötigen.
Fazit
Mit Whisper, subsai, Subtitle Edit CLI, MKVToolNix und FFmpeg stellen Sie eine Pipeline ohne einen
einzigen Klick zusammen, die jedem Video Ihres Teams hochwertige Untertitel hinzufügt. Wenn Sie sich
die Serverwartung für das Einbrennen von Untertiteln lieber sparen möchten: Unser
Robot 🤖 /video/subtitle fügt
einem Video vorhandene SRT- oder WebVTT-Untertitel hinzu. Er erzeugt das Transkript nicht. Laden Sie
das Video im Formularfeld input_video hoch und die Untertiteldatei in input_srt;
eine minimale Assembly sieht so aus:
{
"steps": {
"subtitle_video": {
"robot": "/video/subtitle",
"use": {
"steps": [
{ "name": ":original", "fields": "input_video", "as": "video" },
{ "name": ":original", "fields": "input_srt", "as": "subtitles" }
]
},
"subtitles_type": "burned",
"font_size": 24,
"position": "bottom",
"font_color": "FFFFFF",
"border_style": "outline"
}
}
}
Probieren Sie es aus – Ihre Zuschauer werden es Ihnen danken, besonders diejenigen, die stummgeschaltetes Autoplay nutzen.
