Blender Multimedia
Blender Multimedia
por Claudio "malefico" Andaur
(the3d_hut@yahoo.com.ar)
Introducción
Blender además de ser un
excelente programa
de modelado y animación, es también un digno editor de vídeo. Soporta
los formatos clásicos AVI y AVIJPG además de permitirnos agregar imágenes
estáticas TGA o JPG (muy útil a la hora de hacer nuestros títulos
y créditos al final de nuestras animaciones). Una característica muy
útil que fue añadida al poco tiempo que el código fue "abierto"
es la de añadir, editar y sincronizar pistas de audio con nuestras
animaciones.
Sin embargo no es posible aún (al tiempo de escribir estas líneas)
renderizar el sonido conjuntamente con el vídeo. Para este último
paso es todavía necesario recurrir a software externo.
Tanto para Windows como para Linux existen herramientas GPL, es decir
gratuitas y con código fuente abierto, para nuestro deleite. Estas
son VirtualDub, que durante mucho tiempo fue freeware para uso no
comercial y que recientemente se ha convertido en GPL, para Windows
(aunque funciona perfectamente en Linux utilizando Wine), Mplayer
(con su excelente codificador Mencoder),
Avidemux y Broadcast2000 (ahora Cinelerra), un excelente editor de
audio y video gratuito disponible para Linux.
El objetivo final de este tutorial será obtener un vídeo AVI con sonido
y codificado con el estándar de compresión de vídeo MPEG4, por supuesto
sin desembolsar un peso (ni peseta).
Editores y sus manías
Como dice líneas arriba, Blender es un digno editor de vídeo, pero
uno puede llegar a necesitar algo más. Un excelente editor de video
y audio que supo ganarse un lugar en el mundo multimedia linux es
(o era) Broadcast 2000 y su secuela tecnológica Cinelerra. Este programa
de calidad profesional, puede leer y grabar audio WAV, MP3 y vídeo
Quicktime con distintos sistemas de compresión (JPG, DV, YUV, etc).
Estaba disponible en HeroineWarrior pero su autor lo ha quitado del
acceso público para evitar posibles problemas legales. De cualquier
manera está aún presente en muchas distribuciones linux hasta la versión
"C".
Entonces, para qué me molesto en escribir sobre esto ? Buena pregunta
Watson. La razón es que existe una comunidad que siguió desarrollando
Broadcast y que además de mantenerlo disponible en la web, hackeó
el código original añadiéndole interesantes funcionalidades. La versión
que me parece más útil de las que he visto hasta ahora es la Broadcast2000c
MF2. El código original y esta versión modificada pueden conseguirse
en este sitio. Esta versión modificada permite grabar un vídeo
con
compresión OpenDivx, además de importar audio OGG Vorbis.
Una opción entonces sería descargar esta versión de Broadcast2000c
y compilarla e instalarla como primer paso. La compilación no debería
traer problemas a un usuario linux promedio, las fuentes no traen
un script de configuración, pero el Makefile está bien hecho y debe
funcionar sin problemas (recuerden: 'make' y 'make install' como root).
Una vez finalizada la instalación podremos llamar al programa tipeando
"bcast" en cualquier terminal.
Sin embargo a nadie recomiendo abrir un AVI recién salido de Blender
con este programa, solo conseguirá obtener un centenar de pistas de
audio y probablemente algún cuelgue del servidor X. La razón es que
Broadcast y sus versiones hackeadas trabajan con archivos de vídeo
en formato Quicktime o listas de imágenes JPG. Por ello deberemos
convertir nuestros AVI al formato Quicktime, o bien renderizar las
animaciones como archivos JPG y generar una lista. Para lo primero
la mejor solución es utilizar el excelente programa GMerlin o aún
mejor MPlayer que nos permitirá leer el AVI y volver a codificarlo
como Quicktime con distintos esquemas de compresión de vídeo como
MJPA, JPG y OpenDivX. Si no tenemos ganas de bajar este programa (alrededor
de 5MB) y compilarlo, siempre podemos optar por crear una lista JPG.
Figure 1: Renderizando como listas JPG desde Blender
Para crear una lista JPG lo que primero debemos hacer es renderizar
con Blender nuestra animación como una lista de imágenes JPG. Para
ello seleccionaremos en la ventana de render el formato JPG y escribiremos
el path donde deseamos guardar las imágenes en la caja correspondiente.
Conviene usar un directorio aparte preparado para almacenar las imágenes
(frames) de nuestra animación en lugar de un nombre de archivo en
nuestro directorio habitual.
Luego haremos click en ANIM y las imágenes se generarán y guardarán
en disco con nombres secuenciales (frame0001, 0002, 0003, etc).
Una vez renderizada la secuencia, generaremos una lista JPG en un
archivo de texto. Este archivo podemos generarlo manualmente incluyendo
los nombres de todos los archivos JPG generados pero lo mejor será
abrir una terminal y movernos al directorio donde hayamos guardado
las imágenes y tipear "ls > lista.txt" para obtener
un archivo con la lista.
Para que Broadcast2000 pueda entender la lista es necesario editar
este archivo y añadir las siguientes lineas como encabezado :
-
JPEGLIST # cualquier comentario despues del caracter '#'
24.000000 #frame rate usado en Blender
640 #resolucion en X de la animacion
480 #resolucion en Y
(...)
Figure 2: Una lista JPG
Y a continuación los nombres de las imágenes. Estos nombres es recomendable
tipearlos con el path completo o bien lanzar Broadcast2000 desde el
mismo directorio donde se encuentran las imágenes.
Para nuestra comodidad, sobre todo si la animación tiene mas de 100
cuadros, he escrito un par de pequeños scripts para bash TGA2LIST y JPG2LIST, que
generarán interactivamente las dichosas listas (formatos TGA o JPG). Para ejecutarlo basta
con copiarlo al directorio donde hemos almacenado las imágenes (asegurarse
de que no haya otro archivo más en el directorio porque será incluido
en la lista, produciendo un bug en Broadcast2000) y descomprimirlo
con Gunzip (WinZip tambien funciona) o bien instalarlo en el directorio /usr/bin o /usr/local/bin para acceder desde cualquier directorio.
Una vez que hayamos generado la lista, el archivo JPGLIST.TXT generado
por el script o bien el archivo editado manualmente, arrancaremos
Broadcast2000 y lo cargaremos desde FILE -> OPEN como si se tratase
de una animación. Si todo fue bien, veremos aparecer los cuadros de
la animación.
Figure 3: Broadcast2000 en acción
A partir de aquí añadiremos los sonidos y música en pistas de audio
mediante FILE -> APPEND. Como esto no es un curso de Broadcast2000,
les recomiendo la documentación incluida en las fuentes para aprender
el uso del editor. Una vez concluida nuestra edición de audio, deberemos
renderizar las pistas de audio y vídeo juntas eligiendo para este
último caso, el sistema de compresión OpenDivx. Esto generará un archivo
MOV (el formato Quicktime) con compresión OpenDivX. Claro que esto
no es lo mismo que tener un AVI con compresión DivX. Pero se le parece
bastante. El último paso será codificar este archivo al formato más
popular AVI DivX. Podemos utilizar el GMerlin comentado más
arriba
o el MEncoder que viene con MPlayer. Este
codificador podrá leer el
MOV comprimido y recodificarlo como AVI usando los codecs DivX que
tengamos instalados en nuestro sistema.
Lo mismo, pero más fácil
Si Broadcast o Cinelerra nos parecen demasiado complicados o nuestro
sistema no es lo suficientemente potente para soportarlos, podemos
realizar la edición de audio desde el propio Blender. Para esto lo
que debemos hacer es abrir una ventana de Editor de Secuencias (SHIFT+F8)
y llamar al menú principal con la combinación de teclas SHIFT+A.
Figure 4: El editor de secuencias en acción
Ahora podremos incluir las pistas de audio y vídeo y manipularlas
a nuestro gusto. Por ahora, el único formato de audio soportado es
el WAV.
Es posible sincronizar y monitorear el audio activando la opción "SCRUB"
en los botones de audio de Blender. Esto lo hace ideal para añadir
pistas de doblaje a la animación de personajes. Con esta opción activada
simplemente al movernos cuadro a cuadro se irá reproduciendo parcialmente
el sonido sincronizado.
Figure 5: Los botones de audio en Blender
Una vez concluido el trabajo se debe "renderizar" el audio mediante
el botón "MIXDOWN" también presente entre los botones de audio.
Esto generará un nuevo WAV que incluye toda nuestra edición de audio
sincronizada perfectamente con el vídeo renderizado. Mayor información
sobre las posibilidades de audio de Blender se puede consultar la
documentación oficial accesible en www.blender.org. Es importante
remarcar que la funcionalidad del Editor de Secuencias de Blender
puede ser grandemente ampliada mediante el uso de Plugins que pueden
descargarse del Repositorio de Plugins para Blender.
El único paso que resta es unir el audio y el vídeo (lo que se conoce
como "multiplexado").
En Windows disponemos de VirtualDub que tiene la ventaja de poder
leer directamente un AVI tal como sale de Blender, por lo que no será
necesario crear la lista como más arriba. Con un poco de suerte aprovechando
que ahora es GPL quizás podamos los linuxeros disfrutar de este software
nativamente, por ahora podremos usarlo mediante WINE. Simplemente
hace falta bajar el ZIP precompilado, descomprimirlo en una carpeta
que Wine pueda ver, y ejecutar "wine VirtualDub.exe"
en una terminal. Este programa es un excelente editor de vídeo aunque
no está tan bien equipado para editar audio como el Broadcast2000.
La codificación se hace desde el mismo VirtualDub si uno tiene los
codecs DivX para windows instalados.
Si son unos linuxeros recalcitrantes (como quien escribe estas líneas)
y no quieren "rebajarse" a usar Wine, también disponemos de
Avidemux.
Figure 6: La interfaz de Avidemux
Este editor puede leer vídeos AVI con compresión DivX, FFMPEG, OpenDivX,
XviD y otros (según la versión). Simplemente cargaremos el vídeo y
el audio en AVIDEMUX y re-renderizaremos el conjunto multiplexado.
Una vez más, MEncoder nos permitirá codificar nuestro AVI multiplexado
a cualquier formato (incluyendo Quicktime Sorensen) necesario por
cualquier aplicación.
Bibliotecas, Codecs y otras rarezas
Si siguieron el texto hasta aquí se darán cuenta que el software que
hemos compilado e instalado requiere una cantidad de bibliotecas (o
librerías, como quieras llamarlo) bastante importante. En particular,
será necesario instalar las bibliotecas Quicktime4Linux, Avifile y
los codecs DivX y OpenDivX. MPlayer no requiere Avifile ni Quicktime4Linux
por lo que puede llegar a ser una opción más atractiva si decidimos
editar directamente en Blender.
Para manejar sonido nuestro sistema debería tener instaladas las bibliotecas
Mad (decodificador de audio MPEG), OGG Vorbis, Libsnd (para WAV).
También será conveniente contar con SDL (http://www.libsdl.org) y
algunas bibliotecas derivadas como SDL_mixer, para algunos reproductores
de vídeo en pantalla completa.
Casi todos estos componentes se encuentran en la gran mayoría de las
distribuciones Linux modernas, por lo que a lo sumo será necesario
actualizarlas.
Espero que esta breve reseña les haya sido útil y no dejen de mostrar
sus animaciones cuando las terminen !