Esta receta explica cómo convertir subtítulos de un DVD a formato VobSub con herramientas libres.

Nota Legal

El autor subraya que copiar un soporte digital de contenido cultural es legal para obras propias, copias adquiridas comercialmente o que cumplan las condiciones de copia privada. El autor rechaza toda responsabilidad y desaprueba la utilización de esta información en aquellos casos que queden fuera de la legalidad vigente.

Ingredientes.

  • transcode
  • subtitleripper
  • rar-2.80 (para comprimir los subtítulos)
  • mencoder

Todos se pueden instalar desde http://www.debian-multimedia.org

Introducción

El formato de subtítulos .srt es un fichero de texto ASCII. Sin embargo, el formato VobSub es análogo al utilizado en los DVD, es decir, un flujo de imágenes que contienen el texto de los subtítulos. La ventaja principal de VobSub es que no requiere un OCR y por tanto mucho menos propenso a errores. Como desventaja, el VobSub ocupa mucho más espacio de disco. Un vobsub para una película de unos 100 minutos puede ocupar más de 30 MB, mientras que el .srt para esa misma película no supera los 60 KB.

Extraer el flujo

Lo primero que debes hacer es elegir y extraer un flujo de subtítulos en crudo desde el DVD. Para ello, consulta la receta Convertir subtítulos de DVD a formato .srt. Concretamente las 2 primeras secciones:

y después vuelve aquí.

Copiar el fichero .ifo

El fichero .ifo correspondiente al título elegido contiene información sobre dimensiones del fotograma, paleta de color de los subtítulos, código de idioma, identificador del subtítulo, etc. Por eso debes copiarlo desde el DVD al mismo directorio en el que hayas extraído el fichero .ps1. Así que:

$ cp /media/dvd/video_ts/vts_01_0.ifo lovestory.ifo

Conversión de formato

Tan fácil como:

$ subtitle2vobsub -i lovestory.ifo -p lovestory-en.ps1 -o lovestory

Alternativa

En lugar de usar transcode y subtitle2vobsub se puede utilizar mencoder para hacer lo mismo en un sólo paso. No es mejor ni peor porque de hecho subtitleripper utiliza código del proyecto mplayer.

$ mencoder dvd://1 -ovc copy -o /dev/null -nosound -vobsubout lovestory-en -vobsuboutindex 0 -vobsuboutid en -sid 3

dónde:

  • -sid 3: Es el flujo de subtítulos a extraer.

Probando

En este momento debes tener cuatro ficheros (los tres son necesarios):

lovestory.avi
lovestory.ifo
lovestory.idx
lovestory.sub

Si este es el caso, mplayer cargará automáticamente los subtitulos. Si la película tiene un nombre distinto a los demás ficheros tendrás que indicarle algo como:

$ mplayer fichero.avi -vobsub lovestory

Empaquetado de ficheros

Una forma cómoda de manejar estos ficheros y ahorrar una buena cantidad de espacio es comprimirlos. Desgraciadamente el único formato que parece soportar MPlayer es .rar, que tiene una asquerosa licencia privativa. MPlayer no incumple la licencia porque él sólo descomprime, y sí que hay librerías unrar libres (aunque sólo para versiones de rar < 3.0). Si te sigue interesando:

$ rar-2.80 a lovestory.rar lovestory.idx lovestory.ifo lovestory.sub

Todo en un Makefile

TITLE=lovestory
TRACK=1
LANG=es
LANGid=0x21
FILE=$(TITLE)-$(LANG)

$(TITLE).rar: $(TITLE).sub
        rar-2.80 a $(TITLE).rar $(TITLE).ifo $(TITLE).idx $(TITLE).sub

$(TITLE).sub: $(FILE).ps1 $(TITLE).ifo
        subtitle2vobsub -i $(TITLE).ifo -p $(FILE).ps1 -o $(TITLE)

$(FILE).ps1:
	tccat -i /dev/dvd -T $(TRACK),-1 | tcextract -x ps1 -t vob -a $(LANGid) > $@

Extraer varios idiomas en un mismo .sub

Por hacer

¿Qué pasa si no tengo .ifo?

Por hacer

Cómo hacer un ripping multi-CD con subtítulos

Por hacer

Referencias



blog comments powered by Disqus