11.07.2007

Presentaciones con dvd-slideshow

Buscaba una manera realmente sencilla e intuitiva de hacer buenas presentaciones de imágenes pero con la posibilidad de "complicar" las cosas si es necesario :) Así encontré Slideshow Creator, un programa que no es más que una gui o frontend de dvd-slideshow. Es rápido, liviano y muy fácil de usar, aunque todavía faltan pulir algunas cosas y claro reparar algunos bugs, pero de todas maneras promete bastante y espero que algún día este en los repositorios.

Después de instalarlo se lo puede ejecutar desde un terminal con slcreator.

Pero sucede que al poco tiempo de usarlo me resultó más sensato primero aprender dvd-slideshow y sus acompañantes, para luego usar cualquier gui conociendo qué es lo que hace.

Para instalar dvd-slideshow se puede revisar la documentación (en ingles). O como en mi caso, en una distribución Debian/Ubuntu es cuestión de tener los repositorios correctos (multiverse en mi caso) activados y luego usar Synaptic o apt he ir instalando primero las dependencias y por último el paquete dvd-slideshow.

Si nos indica que falta alguna dependencia, la instalamos hasta que el paquete quede configurado por completo. Al terminar la instalación podemos ejecutar dvd-slideshow desde una terminal y obtenemos los detalles de su uso. En este punto recomiendo primero volcar una copia de esta ayuda a cualquier archivo de texto y luego leerla :) Para obtener esta salida en un archivo directamente desde la consola hacemos:


$dvd-slideshow -? > /ubicación/deseada/dvd-slideshow-ayuda.txt

Un problema que tuve y que buscando la solución me dí cuenta que no era el único, fue que ffmpeg que es usado por dvd-slideshow para la conversión de los archivos, daba un error ya sea que estemos o no usando audio. Para solucionar este problema hay que hacer un par de cambios a la configuración de dvd-slideshow. Lo primero y recomendable es descargar la última versión desde aquí ya que al momento de escribir esto la versión de los repositorios es una anterior. Una vez descargado lo instalamos ejecutando desde la consola:


$dpkg -i /ubicación/del/paquete/archivo.deb


Ahora desde debemos modificar el archivo dvd-slideshow que se encuentra en /usr/bin/:


$gedit /usr/bin/dvd-slideshow

Vamos a las líneas 3989, 3997 y 4004 y en cada una de ellas añadimos al final de los números una k, para que quede así: 224k, 128k y 192k, en vez de 224, 128 y 192. Guardamos los cambios y salimos de gedit. Con esto ya no tendríamos problemas. Gracias roquis!! (hilo del foro)

Así que mejor empecemos. Crearemos una presentación un tanto simple de imágenes únicamente con transiciones y un archivo de sonido como fondo, luego iremos complicando las cosas :) Un paso previo que nos recomiendan en Slideshow Creator y que me parece muy acertado es crear una carpeta para nuestras presentaciones (maindir de ahora en adelante) y dentro crear dos carpetas más, una para las imágenes (imgs en adelante) y la otra para la salida del video (vob en adelante).

Lista de imágenes

En la carpeta de imágenes colocamos... bueno las imágenes que vayamos a usar xD. He descargado algunos fondos de pantalla de DevianArt, los archivos que usemos pueden tener las extensiones .jpg o .png (.jpg .jpeg .JPG .png .PNG) y su tamaño y resolución puede ser cualquiera.

Una vez que tengamos listas las imágenes en la carpeta, usaremos un comando que viene con dvd-slideshow llamado dir2slideshow.

Su sintaxis es la siguiente:


dir2slideshow [-o <Directorio de destino>] [-t <Segundo por imagen>] [-c <Segundos de la transición>] -n <Nombre del slideshow> [-s Texto de subtítulo] [-notitle] <Directorio de imágenes>

Opciones:

[-o <Directorio de destino>] Directorio donde se generará el archivo. Si no es especificado se usará el directorio actual.

[-t <Segundo por imagen>]
Número de segundos que se mostrará cada imagen en la película. Por defecto es 5 si no se especifica nada.

[-c <Segundos de la transición>] Número de segundos que dura cada transición (crossfade) entre imágenes.

[-n <Nombre del slideshow>] El nombre de la presentación. Este nombre es usado como el título por defecto de la primera imagen y será el nombre del archivo generado.

[-s Texto_de_subtítulo] Añade el subtítulo "Texto_de_subtítulo" a cada slide. Se puede usar "-s filename" para mostrar el nombre de archivo como subtítulo. También se puede usar "-s path" para mostrar la ubicación y el nombre de archivo como subtítulo.

[-notitle] No crea ninguna diapositiva de título.

[-p] Usa formato de video PAL en vez de NTSC.

<Directorio de imágenes> La ubicación de la carpeta de imágenes que queremos usar.

De esta manera tendríamos:


$dir2slideshow -o ~/Desktop/maindir/ -t 4 -c 2 -n 'Mi presentación' -notitle -p ~/Desktop/maindir/imgs

Ahora nos dirigimos al directorio ~/Desktop/maindir/ y veremos que se ha creado el archivo Mi_presentación.txt que en mi caso en particular quedó de la manera mostrada abajo, pero básicamente lo que varía serían las rutas de los ficheros y los tiempos.


pal=1

background:0::black

fadein:1

/media/taoshi/taoshi/Desktop/maindir/imagenes/Ancient_Memories.jpg:4:Ancient_Memories.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Autumn_Lake.jpg:4:Autumn_Lake.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Chillon_1600x1200.jpg:4:Chillon_1600x1200.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Dreamy_World.jpg:4:Dreamy_World.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Galata_Wallpaper.jpg:4:Galata_Wallpaper.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Old_barns.jpg:4:Old_barns.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Otherland_II.jpg:4:Otherland_II.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/The_Garden_Of_Zen_1280x800.jpg:4:The_Garden_Of_Zen_1280x800.jpg

crossfade:2

/media/taoshi/taoshi/Desktop/maindir/imagenes/Thepersonwhoknewtoomuch.jpg:4:Thepersonwhoknewtoomuch.jpg

fadeout:1

background:2


Presentación

Ya estamos listos para generar la presentación, podemos editar a mano el archivo .txt para ajustarlo a nuestras preferencias, pero por ahora lo dejaremos tal cual está. Como deseamos sonido de fondo podemos colocar en la carpeta maindir (donde tenemos al archivo .txt) el fichero que deseemos (.ogg .mp3 .wav), de otra manera lo podemos especificar con su ruta completa al crear la presentación.

Para generar la presentación usamos el comando dvd-slideshow.

Su sintaxis es la siguiente:


dvd-slideshow [-n <nombre de la presentación>] [-o <directorio de salida>] [-b <imagen jpg de fondo>] [-a <archivo de audio 1> -a <archivo de audio 2> -a <archivo de audio N>] [-p] [-L] [-H] [-mp2] [-r] [-smp] [-border <tamaño del borde>] [-theme <nombre del tema>] [-f] <archivo de texto>


Opciones:

[-n <nombre de la presentación>] El nombre que tendrá el archivo creado. Se tomará el nombre del archivo de entrada (.txt) si no es especificado ninguno.

[-o <directorio de salida>] Ubicación donde los archivos .vob y dvdauthor .xml serán creados. Si no se especifica ninguno se usará el directorio actual.

[-b <imagen jpg de fondo>] Imagen que será usada como fondo de la presentación. Todas las imágenes se mostrarán sobre esta imagen. Si no se especifica, se usa negro como fondo de las imágenes y una gradiente azul para la diapositiva de título.

[-a <Archivos de Audio>] Archivo de audio reproducido durante la presentación. Automáticamente se realiza un "fadeout" al final de la presentación. Si se usan varios archivos de audio se reproducen uno tras otro. Existe una manera más avanzada y más flexible mediante opciones en el archivo de texto que veremos m{as adelante.

[-p] Usa formato de video PAL en vez de NTSC.

[-L] Realiza el render en calidad baja recomendable para debugging. Configura la resolución a 1/2 de la resolución total y disminuye la calidad de los efectos. Esto debería aumentar la velocidad del proceso de codificación en al menos un factor de 4.

[-f <archivo de texto> ]Archivo de entrada

De esta manera tendríamos algo como lo siguiente:


$dvd-slideshow -o ~/Desktop/maindir/vob/ -n 'Mi Presentación Video' -p -a 'The Echo Game.mp3' -f ~/Desktop/maindir/Mi_Presentación.txt



Dependiendo de la configuración que usemos y de la cantidad de archivos, esto puede llevar algo de tiempo.

Al terminar, en el directorio de salida vob/ tendremos los archivos Mi_presentación.vob y Mi_presentación.xml y el log. Podemos reproducir el video con nuestro reproductor favorito (mplayer, vlc, etc) y comprobar que todo está perfecto.


De aquí en adelante podemos hacer lo que queramos con el video (editarlo, post-producirlo, grabarlo..) mediante programas como dvd-menu, que es parte de dvd-slideshow y sirve para generar dvd menús; u otros como cindelerra, dvdauthor, ffmpeg, etc.


El resultado que obtuve fue el siguiente:








Y eso es todo por ahora!! Espero que les haya servido.