Hier ist mein Prozess

Hier ist mein Prozess

Gibt es eine Möglichkeit, Untertitel von DVDSub (bildbasiert) in SRT umzuwandeln? Beispielsweise mit Mencoder oder FFMPeg in Kombination mit Tesseract?

Ich bin auf der Suche nach etwas, das auf der Befehlszeile basiert, und habe kein Problem damit, mehrere Durchläufe zu durchlaufen.

Ich bin kein großer Fan von GUI-basierten Tools.

Antwort1

Sie haben wahrscheinlich bereits eine Lösung gefunden, aber da dies das erste Suchergebnis für „ffmpeg ocr dvdsub srt“ war, hier ein Tool, das ich verwende.

https://github.com/ruediger/VobSub2SRT

Es ist nicht perfekt und erfordert möglicherweise einige Bearbeitungen.

Ich habe versucht, eine Funktion in ffmpeg zu finden, die dies besser macht als meine Methode, aber ich habe dies gefunden und mich an das Kaninchenloch erinnert, in das ich hinabsteigen musste, also hoffe ich, dass dies jemandem hilft.

Hier ist mein Prozess

Zum Extrahieren von DVD-Sub aus einer MKV-Datei

Verwenden von mkvextract von mkvtoolnix-cli

mkvextract video.mkv tracks 2:video.idx

  • arg 1 - Der Dateiname des Videos, das DVDSub enthält
  • arg 2 - Der Extraktionstyp
  • arg 3 - [Stream # enthält dvdsub]:[Gewünschter Dateiname der extrahierten Dateien].idx

Mein Beispiel hätte eine video.idx- und eine video.sub-Datei erzeugt

Subrip aus .idx- und .sub-Dateien generieren

Verwenden von vobsub2srt

vobsub2srt verwendet Tesseract und ich habe festgestellt, dass der Legacy-Modus von Tesseract am besten funktioniert.

vobsub2srt --tesseract-oem 0 video

  • arg 1 – Tesseract Engine-Modus ( tesseract --help-oemfür Modi)
  • arg 2 - Legacy-Modus
  • arg 3 - Dateiname vonBEIDE.idx und .subOHNEVerlängerung

Mein Beispiel hätte video.srt erzeugt

Subrip-Datei prüfen und bearbeiten

Fehler, die ich erlebt habe

  • „|“ statt „I“, der Legacy-Modus von Tesseract scheint diesen Fehler nicht oft zu machen.
  • ` statt '
  • Leerzeichen: Wenn eine Zeile mit „-“ beginnt, darf zwischen „-“ und dem ersten Wort kein Leerzeichen stehen.
  • Fehlen ' & "
  • „I“ oder „|“ statt „[“, dieser Fehler scheint in der Legacy-Version nicht oft zu passieren.

Bearbeite es

Wenn Sie mit Subrip-Dateien nicht vertraut sind, können Sie diese einfach in einen Texteditor einfügen.

grep, vim und sed sind deine Freunde.

Die meisten Fehler im Legacy-Modus können jedoch leicht ignoriert werden.

Ersetzen von DVDSub durch Subrip (SRT)

Verwenden von ffmpeg

ffmpeg -i video.mkv -i video.srt -c copy -c:s subrip -map 0:v -map 0:a -map 1 final-video.mkv

  • arg 1 & 2 - Eingabe Nr. 1 - Videodatei mit DVD-Sub
  • Argument 3 und 4 – Eingabe Nr. 2 – Subrip-Datei
  • arg 5 - Für alle Streams verwendeter Codec
  • arg 6 – Kopiert alle Streams (Nur Video und Audio werden kopiert)
  • arg 7 – Untertitel-Codec (überschreibt arg 5 für Untertitel)
  • arg 8 – Wählt Subrip als Untertitel-Codec aus (kann redundant sein, aber safe>sorry)
  • Argument 9 und 10 – Ordnet den Videostream vom 1. Eingang dem 1. Stream im Ausgang zu.
  • Argument 11 und 12 – Ordnet den Audiostream vom 1. Eingang dem 2. Stream im Ausgang zu.
  • Argument 13 und 14 – Ordnet den Untertitel-Stream vom 2. Eingang dem 3. Stream im Ausgang zu.
  • arg 15 - Ausgabedateiname

Und fertig, ich hoffe, es gibt hier keine Zeichenbeschränkung.

verwandte Informationen