Existe un programita multiplataforma muy útil a la hora de crear un DVD desde cero, DVDStyler. Soporta muchas funciones, como múltiples canales de audio, varios menúes estáticos o animados, titlesets, subtítulos, etc. Lo más atractivo es la forma de crear los menúes, ya que tiene una interfaz muy simple y bastante amigable.
El problema viene con los subtítulos, que se ven bastante feos. Intentemos solucionar este problema.
DVDStyler utiliza un programita que se llama spumux (parte del paquete dvdauthor) para convertir un archivo de subtítulos de texto (sea srt, ssa, etc) y multiplexarlos con el video.
Este procedimiento se lleva a cabo por un proceso que se llama rendering o renderización, que implica convertir una imagen vectorial (como lo son las fuentes tipográficas) en un mapa de bits. En general, cuando se hace este tipo de operacíon, se aplica un proceso que se llama anti-aliasing, que consiste en hacer pequeños degradados de color alrededor de los bordes para que no quede el típico efecto “escalera”. El problema con los subtítulos es que sólo permiten 4 colores (incluyendo el fondo de la imagen y el color de fuente y borde), y un degradado de calidad requiere muchos más colores. Spumux no hace anti-aliasing sobre la fuente, lo que hace que se vea bastante mal.
No hay muchas opciones para generar las imágenes de subtítulos a partir de un srt, al menos para entornos GNU/Linux. La solución que encontré no es nada agradable y es un poco tediosa, pero funciona bien (es decir, los títulos se ven bien, como podemos apreciar en la imagen superior).
Es tedioso porque hay que salir de la amistosa interfaz de DVDStyler y meterse un poco con archivos de configuración y línea de comandos.
Y no es agradable (de hecho, es muy desagradable) porque para renderizar uso un programita… de Windows. Se llama MaestroSBT, es open source y funciona excelentemente con Wine, pero sigue siendo para Win (ya lo voy a portear).
Bueno, ya que aclaramos los pro y contras, vamos a empezar el proceso.
Antes que nada, instalamos DVDStyler y lo abrimos, nos va a preguntar que tipo de proyecto deseamos. En mi caso, necesito crear un DVD NTSC en formato 4:3 y no necesito sonido 5.1, así que pongo esas opciones, luego armo algun bonito menú para mi DVD, algo así:
Para insertar los botones, simplemente arrastro el archivo de video desde el navegador que está a la izquierda hacia la pantalla. Así se agrega el video, se crea el botón y se relaciona uno con otro en un simple “drag and drop”. Igualmente, hay muchas guias para DVDStyler, así que no me voy a poner con eso.
Despues de esto, se guarda el proyecto, para no tener que volver a hacer todo si algo va mal.
Una de las cosas que tiene DVDStyler es que automáticamente calcula el bitrate requerido para que entren las películas que ponemos. Siempre intenta usar todo el DVD. Otra de las cosas es que soporta varios tipos de archivo de entrada y los convierte. Es decir, podemos arrastrar avi, mpeg, vob, etc. que el programa lo recodifica con los parámetros necesarios.
CUIDADO: Debemos tener en cuenta los subtitulos a la hora de recodificar. Como dijimos antes, DVDStyler ajusta automaticamente el bitrate para que ocupe todo el DVD, pero nosotros necesitamos espacio extra para nuestros subtitulos. Siempre debemos asegurarnos que sobren algunos minutos (10 o 15) en la barrita de abajo. Si no sobran, ajustamos el bitrate del DVD en DVD->Opciones->Calidad de Video (en la imagen, dice “140/140 Minutos” porque me olvide de dejar espacio; esto fue un problema y tuve que recodificar todos los videos otra vez).
Bien, una vez que tengamos todo listo, vamos a armar una estructura de DVD temporal. Antes que nada, debemos ir a las opciones de DVDStyler y tildar la casilla “No borrar los ficheros temporales” (en Configuración->Preferencias->Core). Luego vamos a Archivo->Grabar a DVD…
Ahi definimos una carpeta de trabajo con espacio suficiente y ponemos “Solo generar” (tambien podemos previsualizar, si queremos). Le damos Comenzar y va a iniciar el proceso. Este cuenta de varias partes, Generacion del menú, Recodificación de los videos y armado de la estructura (algunas veces son más pasos, según la operación que hagamos). Este proceso puede durar de unos minutos a algunas horas, dependiendo de la velocidad del procesador, tamaño de las peliculas, etc.
Una vez que terminamos, vamos a agregar los subtítulos.
Vayamos a nuestro directorio de trabajo. Allí vamos a ver tres directorios: dvd-cache, dvd-out y dvd-tmp. En dvd-cache se guardan los archivos recodificados (estos los vamos a usar), en dvd-out se guarda la estructura de DVD generada por DVDStyler y en dvd-tmp se guardan los archivos del menu y el archivo de generación. En lo posible no vamos a mover los archivos de sus actuales ubicaciones (ya que hay, en el archivo de configuración, rutas absolutas a varios archivos) y podemos cerrar DVDStyler (ya no lo vamos a usar).
Vamos, antes que nada, a generar los subtítulos. Para esto debemos tener un archivo de subtitulos en formato ssa para cada uno de los videos que pusimos en el DVDStyler. Los videos recodificados se encuentran en la carpeta dvd-cache y se llaman entry001.vob, entry002.vob, etc., numerados en el orden que los pusimos en el programa. Dentro de la carpeta dvd-cache, generamos otra carpeta para cada video (entry001-subs, por ejemplo) y ponemos el archivo .ssa allí adentro). Luego abrimos (con wine) el programa MaestroSBT y seleccionamos uno de los archivos ssa. Debemos configurar el MaestroSBT de la siguente forma:
Esa es la mejor configuración que encontré. Los subtítulos quedan claros y de buen tamaño. Le damos al botón Generar. Esto va a generar un archivo sst y muchos archivos bmp. A continuación, debemos convertir ese archivo sst a algo con lo que podamos trabajar. Para eso generé un script en perl que convierte el sst en un archivo xml legible por spumux (en este caso, spumux no hace el rendering, sólo pega los subtítulos). El script es el que sigue:
Hay que ponerlo en algún lugar del PATH del sistema (o del usuario), desempaquetarlo y darle permiso de ejecución. Vamos a una consola y en el directorio donde se encuentra el archivo sst ejecutamos:
$ sst2spumux archivo.sst > spumux.xml
Luego
$ spumux -s0 -m dvd spumux.xml < ../entry001.vob > ../entry001-subs.vob
Esto va a generar un archivo que se llame entry001-subs.vob en el directorio dvd-cache. Se pueden agregar más subtítulos para una pelicula haciendo el mismo procedimiento (rendering con MaestroSBT, conversión sst2spumux.pl y multiplexación con spumux), pero cambiando el -s0 por -s1 (para el segundo subtitulo), -s2, etc.
Para cada archivo de video hacemos lo mismo.
Al finalizar, y si todo sale bien, tendremos, en la carpeta dvd-cache, una serie de archivos parecido a este:
entry001.vob entry001-subs.vob entry002.vob entry002-subs.vob
Ahora lo que debemos hacer es modificar el archivo de generación. Este se encuentra en la carpeta dvd-tmp y se llama dvdauthor.xml. Alli vamos a cambiar todos los nombres de los archivos de las peliculas (entry001.vob) a sus respectivos nombres con subtitulos (entry001-subs.vob). También vamos a decirle al programa que idiomas de subtítulos acabamos de agregar. Para eso, buscamos una estructura así:
<titles> <audio lang="ES"/> <audio lang="JA"/> <pgc> <vob chapters="05:00,10:00,15:00,20:00" file="/home/invitado/dvd-cache/entry001-subs.vob"/> <post>call vmgm menu 1;</post> </pgc>
y agregamos una linea, de la siguente forma:
<titles> <audio lang="ES"/> <audio lang="JA"/> <subpicture lang="ES"/> <pgc> <vob chapters="05:00,10:00,15:00,20:00" file="/home/invitado/dvd-cache/entry001-subs.vob"/> <post>call vmgm menu 1;</post> </pgc>
En este caso, hay dos pistas de audio en el video (la primera en español y la segunda en japonés) y una sola pista de subtítulos (en español). Si el video tiene más subtítulos, deberíamos seguir agregando tags “subpicture” en el orden que fueron insertados y con los correspondientes códigos de idioma.
Una vez hecho esto, ya podemos compilar nuestro dvd. Desde el directorio dvd-tmp hacemos:
$ rm -R ../dvd-out $ dvdauthor -o ../dvd-out -x dvdauthor.xml
Esperamos unos minutos y vamos a tener, en el directorio dvd-out, una estructura de DVD lista para probar, grabar o generar un ISO.
Para probar:
$ xine dvd://home/invitado/dvd-out (donde invitado es el nombre del usuario)
Para generar una imagen iso:
$ mkisofs -V "Nombre_del_disco" -o "dvd.iso" -dvd-video "/home/invitado/dvd-out"
Eso es todo!
Despues voy a ver si puedo evitar el uso de MaestroSBT y usar algo libre. Estuve probando con un Script Python-Fu de Gimp que se llama parse_subtitles, pero no lo pude hacer funcionar. También voy a fijarme si puedo modificar DVDStyler para automatizar este proceso (poder usar imágenes en lugar de un srt para los subs).






#1 by Clemenza on 21 febrero 2010 - 19:16
Qué quilombo… el nuevo, el 1.8.0.1, viene con una corrección a ese problema. Pero no hay caso no puedo instalarlo en Ubuntu Karmic, 9.10, ¿alguna sugerencia?
#2 by Matias F. Gea on 22 febrero 2010 - 11:53
Igualmente en la version 1.8.0.1 los subs se ven mal, por la alineacion, antialiasing, etc.
Es medio enroscado, pero es la forma que encontré de hacerlo. También se puede hacer todo desde la linea de comandos, pero me parece mucho más sencillo organizar todo el dvd desde una interfaz como es dvdstyler, principalmente por el tema del menu, las múltiples pistas de audio, etc.
Fijate en el código fuente, hay una parte que tiene un error. Despues de hacer ./configure, andate a la carpeta locales, editá el archivo Makefile. Hay una linea que tiene todos los idiomas que se van a compilar (en es ja ru etc). De ahi eliminá el ja (porque ese archivo de idioma no está en los fuentes). Deberia compilar bien.
Saludos, Matias
#3 by sivaprema on 10 marzo 2010 - 1:14
Yo lo que hago es añadir el subtítulo con Avidemux-GTK (con el filtro de subtitulos correspondientes) simultáneamente con la conversión del fichero a DVD (hay una opcion en el menú AUTO para hacer esto). Luego pongo todos los ficheros convertidos juntos con DVDstyler y armo el DVD
#4 by Matias F. Gea on 10 marzo 2010 - 9:59
Esa es otra forma, pero haciéndolo así, con el Avidemux, los subs quedan pegados en la película y no pueden activarse/desactivarse con los controles del reproductor de DVD.
#5 by Regino on 16 abril 2010 - 14:14
hola oye estuve viendo tu tuto
y me parece bastante interesante
el dvdstyler es muy sencillo e intuitivo
pero me topo con un problema:
cuando le doy generar con el Maestro SBT
me aparece este error:
UNKNOWN ERROR AT PARSED. BUILD ALL()
asi q si pudieses ayudarme te lo agredeceria
por cierto convertir los subtitulos con el
gnome subtitles ya que los tenia en formato srt
bueno espero puedas ayudarme
gracias
#6 by Matias F. Gea on 16 abril 2010 - 15:39
Lo más probable es que haya un error en el archivo de subtítulos, el ssa. Después de generar el ssa fijate que tenga contenido válido (abrelo con un editor de texto y fijate si no tiene ningun mensaje de error).
Si no es eso, no tengo mucha idea. Nunca tuve errores con el MaestroSBT. ¿Te hace eso con todos los archivos ssa o con uno en particular?
Fijate si puedes dar más detalles, así podemos ayudarte mejor.
#7 by Reademio on 26 agosto 2012 - 11:47
Este tutorial me resultó de mucha utilidad para aprender cantidad de cosas. Gracias por ello.
Pero no me deja en claro cómo activar y desactivar subtítulos desde el menú.
¿Habrá algún tuto sobre esto?
#8 by Matias F. Gea on 31 agosto 2012 - 2:14
Te dejo una guia que abarca eso y un poco más. La acabo de rescatar de mi hd y la subí acá (la escribí en el 2007, la calidad de las imágenes es pésima). Calculo que te va a servir.
http://www.mfgea.com.ar/2012/08/31/guia-para-reautorear-el-menu-de-un-dvd/
Saludos!