¿Hay alguna manera de convertir subtítulos de DVDSub (basados en imágenes) a srt? por ejemplo con mencoder o ffmpeg combinado con tesseract?
Estoy buscando algo basado en la línea de comandos y estoy de acuerdo con tener que realizar un par de pasadas.
Estoy menos interesado en las herramientas basadas en GUI.
Respuesta1
Probablemente ya hayas encontrado una solución, pero como este fue el primer resultado de búsqueda de 'ffmpeg ocr dvdsub srt', aquí tienes una herramienta que uso.
https://github.com/ruediger/VobSub2SRT
No es perfecto y es posible que requiera alguna edición.
Estaba tratando de encontrar una característica en ffmpeg que hiciera esto mejor que mi método, pero encontré esto y recordé la madriguera por la que tuve que bajar, así que espero que esto ayude a alguien.
Aquí está mi proceso
Para extraer dvdsub de un .mkv
Usando mkvextract de mkvtoolnix-cli
mkvextract video.mkv tracks 2:video.idx
- arg 1: el nombre del archivo del vídeo que contiene dvdsub
- arg 2 - El tipo de extracción
- arg 3 - [Stream # que contiene dvdsub]: [nombre de archivo deseado de los archivos extraídos].idx
Mi ejemplo habría producido un archivo video.idx y un archivo video.sub
Generando subrip a partir de archivos .idx y .sub
Usando vobsub2srt
vobsub2srt usa tesseract y descubrí que usar el modo heredado de tesseract funciona mejor.
vobsub2srt --tesseract-oem 0 video
- arg 1 - Modo de motor Tesseract (
tesseract --help-oem
para modos) - arg 2 - Modo heredado
- arg 3 - Nombre de archivo deAMBOS.idx y .subSINextensión
Mi ejemplo habría producido video.srt
Inspeccionar y editar el archivo subrip
Errores que he experimentado
- '|' en lugar de "yo", el modo heredado de Tesseract no parece cometer este error con frecuencia.
- ` en lugar de '
- Espaciado, cuando una línea comienza con '-', no puede haber espacio entre '-' y la primera palabra.
- Desaparecido ' & "
- 'Yo' o '|' en lugar de '[', Legacy no parece cometer este error con frecuencia.
Editarlo
Si no está familiarizado con los archivos subrip, puede simplemente colocarlos en un editor de texto.
grep, vim y sed son tus amigos.
Sin embargo, la mayoría de los errores del modo heredado se pueden ignorar fácilmente.
Reemplazo de dvdsub con subrip(srt)
Usando 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 y 2 - Entrada n.º 1 - Archivo de vídeo que contiene dvdsub
- arg 3 y 4 - Entrada n.° 2 - Archivo Subrip
- arg 5: códec utilizado para todas las transmisiones
- arg 6: copia todas las transmisiones (solo se copian el video y el audio)
- arg 7 - Códec de subtítulos (anula arg 5 para subtítulos)
- arg 8: selecciona subrip como códec de subtítulos (puede ser redundante, pero seguro > lo siento)
- arg 9 y 10: asigna la transmisión de video desde la primera entrada a la primera transmisión en la salida
- arg 11 y 12: asigna la transmisión de audio desde la primera entrada a la segunda transmisión en la salida
- arg 13 y 14: asigna la secuencia de subtítulos desde la segunda entrada a la tercera secuencia en la salida
- arg 15 - Nombre del archivo de salida
Y listo, espero que no haya límite de caracteres por aquí.