Efectos avanzados con hooks con ffmpeg [4ra parte]
Como hemos visto en otras entradas relacionadas con ffmpeg, esta herramienta es bastante útil para realizar una gran cantidad de tareas de edición de video. Sin embargo, aparte de simplemente convertir video o extraer audio, existen otros usos avanzados con el que podemos crear algunos efectos interesantes. En esta entrada aprenderemos a usar algunos de ellos, todos en un solo ejemplo.
Continuando con un ejemplo de otra entrada, en donde poníamos en cámara lenta un video, vamos a agregar un par de efectos. Lo primero será crear una cortina que cubra el video, y posteriormente un par de imágenes moviéndose que simularán un par de luces.
Primer ejemplo – Crear un video estático a partir de una imagen con ffmpeg
Lo primero es crear un video en donde tengamos las cortinas estáticas. Así, usando ésta imagen, el comando sería el siguiente:
Esto creará un video con una imagen estática. La opción -loop_input es imprescindible puesto que el archivo de entrada es una simple imagen, es decir, solo un frame, y por tanto es necesario repetirlo durante el video. La opción -t indica a ffmpeg que el video durará 10 segundos.
Segundo ejemplo – Sobreponer imágenes en movimiento usando hooks
Ahora que tenemos el primer pedazo de nuestro video, vamos a jugar con otro tipo de efecto: movimiento de imágenes. Para ello vamos a ejecutar un comando bastante largo, pero fácil de digerir (eso espero):
¡Es todo! ¡Un comando fácil de recordar! Bueno, la verdad no es tan complicado como puede parecer; sin embargo te recomiendo que lo ejecutes por partes:
-vhook ‘/usr/lib/vhook/imlib2.so
-x 100-(40*(sin(N/10)))
-y ((H-(1.5*h))*(sin((N/10)+25)))+(h*2/3)
-i luces.png’
-vhook ‘/usr/lib/vhook/imlib2.so
-x 150+(40*(sin(N/10)))
-y ((H-(1.5*h))*(sin((N/15)+45)))+(h*2/3)
-i luces.png’ telon.mpg
Explicación del comando anterior…
Ciertamente lo único difícil del comando anterior es el uso de los hooks (-vhook). Sin ellos el comando sería algo así:
Por lo tanto es importante entender el uso y opciones de los hooks; sino tienes ni idea, puedes leer estos artículos en donde explico claramente qué son y cómo utilizarlos:
- Sobreponer imagen o texto a un video con ffmpeg – Uso de hooks [1ra parte]
- Parámetros avanzados de los hooks y imlib2.so en ffmpeg – [2da parte]
- Sobreponer imagen o texto en movimiento [ffmpeg] – Uso de hooks [3ra parte]
Tercer ejemplo – Extraer una imagen a partir de un video
Ahora vamos a extraer el primer frame del video al cual vamos a hacerle el montaje. En mi caso se llama lentas.mpg y lo tomé de una entrada anterior.
Lo único a resaltar del comando anterior es el uso de la opción -vframes 1, que indica a ffmpeg que vamos a extraer un frame solamente. Luego creamos un video corto con dicha imagen:
Con el comando anterior creamos un video con una imagen estática, que en el siguiente pasos cubriremos con la cortina en movimiento…
Cuarto ejemplo – Cortina en movimiento (efecto abrir un telón)
En este caso usamos un hook para arrastrar la imagen de la cortina sobre el video que creamos en el paso anterior.
Pasos finales
Luego de realizar todos estos pasos, no nos queda mas sino unir los tres pedazos importantes y añadirle audio:
$ ffmpeg -i resultado.mpg -i sonido.mp3 final.mpg
El resultado del video…
Descargar archivos usados en el ejemplo
6 Comentarios | deja el tuyo



no lo ice pero me gusto el videos de las chiks
jajaja
Eso de hacer videos con una imagen no sabia como hacerlo y tenia que usar winbugs! :X
Que bien que lo hayas puesto!
Saludos
Excelente aporte brother =)
hola,
muy buenos ejemplos… pero tienes alguna formula de vhook para rotar una imagen en un video?
Hola, quisiera saber sí todo esto como se lo hace en window? Gracias por adelantado.
son como lla verga no entiendo nada