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-oem
fü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.