Monday, December 21, 2009

Como hacer un efecto dissolve entre 2 imagenes desde linea de comando

Digamos que tenemos estas imagenes:

A esta le vamos a decir a.png

Y a esta b.png


Ahora queremos hacer un video con un dissolve entre ambas todo desde linea de comando.

Usando composite que es parte del imagemagick podemos poner una imagen sobre otra con un % de 'transparencia'.

Por ejemplo si yo dijera:

composite -dissolve 50 a.png b.png c.png

Eso me daria:


Ahora solo nos falta las otras imagenes y el video por supuesto, las imagenes se pueden hacer con un script de shell como este:

i=0;

while [ $i -lt 100 ];

do
i=`echo $i + 1 | bc`
composite -dissolve $i a.png b.png c$i.png
done


Ese es un simple while de 0 a 100 y vamos cambiando el porcentaje del dissolve en $i y creando imagenes que se llamen c + el porcentaje de dissolve . png

Al final tenemos 100 imágenes, pero aun nos falta el video.

Ese es facil solo decimos:
ffmpeg -i c%d.png final.flv
Nada mas le dijimos al ffmpeg que agarre de parámetro de entrada c%d.png eso es c.png, osea va a agarrar las 100 imagenes y va a hacer un video llamado final.flv

Y eso queda asi:

video

0 comments:

Post a Comment