Convertir .AVI, divx/Xvid a formato VCD / SVCD y grabarlo en un CD

Ayer mi esposa me ha pedido que le grabe una pelicula en formato VCD para una amiga. El formato VCD es soportado por la mayoria de los reproductores caseros de VCD/SVCD DVD. La pelicula estaba en formato divX/Xvid, asi que me tuve que poner a investigar un poco como convertir los formatos y grabar.

Encontre excelente documentacion en el siguiente link: http://www.lugmen.org.ar/proyectos/multimedios/material/vcd.html

Aunque es muy extensa y detallada. En forma resumida estos son los pasos:

1) Convertir la pelicula .AVI (divX/xVid) a formato mpeg (VCD).

Si la pelicula dura menos de 01:20:00 hs, entoces la puedes convertir directamente ya que entrará en un CD. Sino, hay que separar la pelicula para que entre en 2 o mas CDs. Como ejemplo, la pelicula que converti dura como 2 hs, asi que la he separado en 2 mpeg, para luego grabar 2 CDs.

con este comando:

$ ffmpeg -i lapeliculaoriginal.avi -t 01:00:10  -target vcd pelicula.vcd.cd1.mpg

le decimos que a partir de la pelicula original, genere un mpeg llamado “pelicula.vcd.cd1.mpeg” y que convierta hasta una hora y diez segundos. Notar la opcion -target vcd. ffmpeg tiene opciones para convertir tambien a otros formatos, como svcd y dvd.

Con este otro comando:

ffmpeg -i lapeliculaoriginal.avi -ss 01:00:00 -target vcd pelicula.vcd.cd2.mpg

Le decimos que nos genere el mpeg con la 2da parte de la pelicula. Especificamente le estamos diciendo que empiece a partir de una hora. Notar que en el cd1 generado, hemos grabado hasta 01:00:10, y en el cd2 grabamos a partir de 01:00:00. Con esto generamos una superposicion de 10 segundos, para que el cd2 arranque 10 segundos antes.

2) Generar la imagen binaria con vcdimager.

Ahora que ya tenemos los mpeg compatibles con VCD, necesitamos crear la imagen binaria con el formato y los datos del VCD.

Con el comando:

$ vcdimager pelicula.VCD.cd1.mpg

finished ok, image created with 270663 sectors [60:08:63] (636599376 bytes)

$ ls -lShG total 1,2G -rwxrwx— 1 root 608M 2006-11-03 00:56 videocd.bin -rwxrwx— 1 root 599M 2006-11-02 21:53 pelicula.VCD.cd1.mpg -rwxrwx— 1 root 172 2006-11-03 00:53 videocd.cue

Hemos creados los archivos videocd.bin y videocd.cue que son los archivos que quemaremos en el CD.

3) Grabar la imagen binaria en el CD.

Para grabar la imagen necesitamos el programa cdrdao, que nos permite grabar en formato DAO. ACLARACION: Es importante grabar directamente con cdrdao y no convertir la imagen a .ISO o grabar con otro programa, ya que de otra manera se puede perder informacion importante del formato VCD, y luego el CD resultante no será reconocido como un VCD.

con el comando:

$ cdrdao simulate --device /dev/hdc videocd.cue

podemos ver una simulacion de como seria la grabacion del VCD;

y con el comando:

$ cdrdao write --speed 4 --device /dev/hdc videocd.cue

Le decimos que grabe en velocidad 4x.

Si no se le especifica la velocidad de grabacion, por omision intentara grabar a la maxima velocidad.

Eso es todo. Las herramientas ffmpeg, vcdimager y cdrdao son estandard y se encuentran en la mayoria de los repositorios de las distribuciones Linux. Al menos las he instalado en Debian 3.1 Sarge y en Ubuntu 6.06 Dapper dede los respectivos repositorios. ========================================

Notas adicionales

Un CD en formato VCD no puede ser montado en Linux con el comando mount, ya que un VCD no posee sistema de archivos (es similar a lo que pasa cuando ponemos un CD de audio ).

Lo que podemos hacer para reproducir un VCD es usar el siguiente comando mplayer:

 $ mplayer vcd://2 -cdrom-device /dev/hdc

Tambien hay un proyecto interesante llamado cdemu: http://cdemu.sourceforge.net que es un modulo para el kernell de Linux, que nos permite simular una unidad virtual de CD. En esta unidad virtual se pueden montar las siguientes imagenes .mds, .ccd, .nrg, y .cue/bin Es muy interesante pero todavia no lo he probado.