Wie füge ich Untertitel in ein Video mit FFmpeg ein?
- Einführung
- Untertitel als separate Spur (weiche Untertitel) einfügen
- Untertitel dauerhaft ins Video einbrennen (harter Untertitel)
- Weitere Hinweise
- Fazit
Einführung
FFmpeg ist ein mächtiges Kommandozeilen-Tool zur Verarbeitung von Audio- und Videodateien. Eine häufige Aufgabe ist das Einfügen von Untertiteln in ein Video. Dabei gibt es verschiedene Möglichkeiten, je nachdem, ob die Untertitel in das Video dauerhaft eingebrannt (harter Untertitel) werden sollen oder als separate Spur erhalten bleiben (weicher Untertitel).
Untertitel als separate Spur (weiche Untertitel) einfügen
Wenn Sie Untertitel als separate Spur in das Video einfügen möchten, zum Beispiel eine SRT-Datei (.srt), die der Videoplayer bei Bedarf anzeigt, können Sie dies mit FFmpeg erreichen, ohne die Videospur neu zu kodieren.
Der grundlegende Befehl sieht so aus:
ffmpeg -i input-video.mp4 -i untertitel.srt -c copy -c:s mov_text output-video.mp4Erklärung: -i input-video.mp4 lädt das Ausgangsvideo, -i untertitel.srt ladet die Untertiteldatei. Mit -c copy werden Video- und Audiostreams unverändert kopiert, damit keine Qualitätsverluste oder lange Encodingzeiten entstehen. Die Option -c:s mov_text konvertiert die SRT-Untertitel in ein Format (mov_text), das von MP4-Containern verstanden wird.
Das resultierende Video enthält dann eine zusätzliche, auswählbare Untertitelspur - die Untertitel sind also "weich" eingebunden und können vom Videoplayer ein- und ausgeschaltet werden.
Untertitel dauerhaft ins Video einbrennen (harter Untertitel)
Eine andere Möglichkeit ist es, die Untertitel direkt ins Bild zu rendern, sodass sie permanent sichtbar sind und das Video nicht von der Abspielsoftware abhängig ist. Dies nennt man harten Untertitel oder burn-in. Hierfür muss FFmpeg das Video neu kodieren.
Ein typisches Beispiel wäre:
ffmpeg -i input-video.mp4 -vf subtitles=untertitel.srt -c:a copy output-video.mp4Hier sorgt die Video-Filter-Option -vf subtitles=untertitel.srt dafür, dass FFmpeg die SRT-Datei liest und die Untertitel direkt ins Video einzeichnet. Durch -c:a copy wird die Audiospur unverändert übernommen, während das Video durch das Filter neu kodiert wird.
Beachten Sie, dass es je nach System und FFmpeg-Version eventuell erforderlich sein kann, den vollständigen Pfad zur Untertiteldatei anzugeben. Außerdem muss FFmpeg mit der Unterstützung für das Libass-Subtitling-Framework kompiliert sein, damit das Einbrennen von Untertiteln möglich ist.
Weitere Hinweise
Die Qualität und Kompatibilität der Untertitel hängt vom Format und der Container-Datei ab. Für MP4 sind SRT-Untertitel als mov_text weit verbreitet. Für MKV-Container unterstützt FFmpeg auch viele weitere Untertitelarten, bspw. PGS oder ASS.
Beim harten Einbrennen können auch komplexere Untertitel (.ass, .ssa) genutzt werden, um Schriftart, Position und Effekte anzupassen. Beispiel:
ffmpeg -i input-video.mkv -vf "ass=untertitel.ass" -c:a copy output-video.mkvAbschließend ist zu beachten, dass das neue Video beim harten Einbrennen immer neu kodiert wird. Das kann Zeit und Rechenleistung kosten und eventuell zu Qualitätsverlust führen, wenn Sie nicht hochwertige Video-Codecs und Einstellungen verwenden.
Fazit
FFmpeg bietet flexible Methoden, um Untertitel in Videos einzufügen. Möchten Sie, dass die Untertitel optional an- und ausgeschaltet werden können, sind sogenannte weiche Untertitel mit -c:s mov_text der Weg. Für dauerhaft sichtbare eingebrannte Untertitel nutzen Sie die Video-Filter-Option -vf subtitles= oder -vf ass= in Kombination mit einer Neu-Kodierung des Videos.
