Aquí está mi proceso

Aquí está mi proceso

¿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-oempara 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í.

información relacionada