sábado, 12 de diciembre de 2009

Blender sequencer automation

Durante esta semana he estado buscando algunas alternativas a la creación de vídeos a partir de grandes secuencias dispersas de imágenes.

Mis condiciones eran las siguientes:

  1. Las imágenes pueden existir o no. Si no están ahí el vídeo debe presentar negro y el audio debe continuar tal cual.
  2. Los archivos pueden estar dañados o incompletos.
  3. La resolución de los ficheros es conocida a priori pero no es obligatoria
  4. El vídeo resultante debe ser un quicktime.
  5. Debe generarse en un entorno linux con coste de software cero.
Mi primera opción fue pensar en Shake y echarlo mucho de menos, optar por él iría en contra de la condición [5]

Tenía la opción de Toxik, incluído en nuestras licencias de maya. Sin embargo no terminaba de estar cómodo con esto ya que optar por esto habría supuesto que cada vez que alguien hiciese un video consumiría a su vez una licencia.

Finalmente y como es habitual en mí, opté por blender.

Y aquí es donde las cosas se ponen feas. Resulta que la documentación de la API en las áreas del secuenciador no termina de estar terminada. Es más, está prácticamente vacía.

En el foro de desarrollo encontré algunas pistas sobre cómo crear strips de vídeo. Especialmente esta corta respuesta de cómo crear videos en el sequencer. Sin embargo en ese post no se comenta nada acerca de cómo hacer una pista de efecto. Un cross fade, o un fade o yo que sé.



Así que me encontré con que tenía todas las secuencias colocadas pero ninguna transición entre clips. Tras seguir dándole caña, encontré que la forma de hacer los cross fades era esta:

sce = Scene.GetCurrent()
seq = sce.sequence
nu_strip = seq.new((13, strip_izquierdo, strip_derecho), , )

El número mágico, el "13" que aparece en el código puede obtenerse de la lista de códigos mágicos del código fuente de blender. En el fichero DNA_sequence_types.h, en el directorio: source/blender/makesdna

...
#define SEQ_ADD 9
#define SEQ_SUB 10
#define SEQ_ALPHAOVER 11
#define SEQ_ALPHAUNDER 12
#define SEQ_GAMCROSS 13
#define SEQ_MUL 14
#define SEQ_OVERDROP 15
#define SEQ_PLUGIN 24
#define SEQ_WIPE 25
#define SEQ_GLOW 26
#define SEQ_TRANSFORM 27
#define SEQ_COLOR 28
#define SEQ_SPEED 29
#define SEQ_EFFECT_MAX 29
...

No termina de gustarme el asunto de que ponga "gammacross" sin embargo, como puede verse en el vídeo embebido tiene el efecto que estoy buscando de cross entre vídeos.

Si refino esto un poco más intentaré buscar un hueco para contarlo aqui.

De cara a lanzar el proceso, opté por la simplicidad y utilicé una combinación de fichero .blend preconfigurado y mis propios módulos de python:

blender -b video_writting.blend -P my_script.py

Donde en my_script.py defino la longitud total del vídeo, su posición, etc. Los atributos del tipo de vídeo, tamaño de salida, etc. están en el propio .blend haciendo el proceso bastante más sencillo.


--
Podeís ver el resultado también aqui, en vimeo.
PD: blogger es una pesadilla para publicar un maldito vídeo de 500 K

lunes, 23 de noviembre de 2009

Modern Warfare 2


Este fin de semana, sin poder evitarlo he terminado el Modern Warfare 2. Además, gracias a budo he podido probar las misiones co-op.

Salvaje, otra vez. Absolutamente delicioso.



bar

domingo, 15 de noviembre de 2009

Modern Warfare


Fantástica experiencia la de este videojuego que había pasado inadvertido en mi colección. Quizá estaba algo cansado de los FPS cuando lo publicaron.

El guión está impecable y es perfectamente cinematográfico. Varios twist, persecuciones, cambios en la dinámica de juego, apoyo aéreo, traiciones, etc. Sólo lo he pasado mal con la huída del pueblo, hasta que he encontrado un boquete en el script y he rodeado el problema completo.

No he probado el modo multiplayer, ya tengo bastante con Halos varios aunque me comentan maravillas del mismo.

Lo único que lamento es no habérmelo pasado con Fran y Jose en modo powergamer. Otra vez será.


lunes, 26 de octubre de 2009

domingo, 25 de octubre de 2009

Jesus 2000 ¡awesome!


Acabo de encontrar el myspace de estos bestias r-ash. Que supongo deben ser famosérrimos a juzgar por que los usan en este vídeo que es un pasote, jesus 2000.

viernes, 23 de octubre de 2009

domingo, 18 de octubre de 2009

Chen Wenling


Acabo de descubrir a Chen Wenling, no sé si es hombre o mujer. Tampoco sé qué origen tiene. He visto algunas fotos de sus esculturas e instalaciones en este link: galería de Chen Wenling.





martes, 13 de octubre de 2009

Web development, segunda vuelta

Avances en desarrollo web de hoy:



Os mantendré informados

domingo, 11 de octubre de 2009

Google week - wave

Durante esta semana Google se me ha adelantado publicando Wave. No voy a describir qué es ni para qué vale, porque no puedo, ni siquiera tras zamparme la kilométrica demo del producto.

Para los muy interesados, os sugiero la presentación de google wave. Donde he encontrado un detalle que me ha gustado mucho, cuando el presentador cita al equipo de Google Web Toolkit. Sé que todo les queda en casa pero estas cosas, como a cualquier desarrollador, me gusta verlas.

El sitio web del protocolo base está albergado en uno de esos proyectos silenciosos que se mencionan a veces en el mundillo google: wave protocol. En cualquier caso espero que los desarrolladores nos mantengan al día de todo lo que va pasando por las mentes del equipo de soft, concretamente desde aqui: wave developer blog .


Por otro lado sigo a vueltitas con mi Houdini en la versión 10.0.3xy un cañonazo de software que, conforme lo vas conociendo, te convence de que estabas sumido en la sombra hasta el momento.

¡Ah! y casi me olvido: debido a dificultades técnicas con mi antiguo blog: the long tomorrow, me he mudado a este lado del mundo. Ha sido una temporada muy buena y espero que les vaya bien.