Crear un gif a partir de un video por linea de comandos

Publicado por Andrea Navarro en

En este artículo se listas diferentes técnicas para crear un gif a partir de un video utilizando combinaciones de diferentes herramientas. En cada caso se especifica el peso del gif resultante ya que este es uno del los factores más importantes a la hora de elegir un método, un gif demasiado pesado ralentizará la carga de la página web que lo contiene notablemente.

Lo primero que necesitaremos es un programa capturador que permita grabar toda la pantalla o sectores de la misma. En este ejemplo utilizamos recordmydesktop.

A continuación se listan los comandos para instalar los diferentes programas que se utilizan en los ejemplos.

Instalación de recodmydesktop

sudo apt-get install recordmydesktop

Instalación de Mplayer

sudo apt-get install mplayer

Instalación de Image Magick

sudo apt-get install imagemagick

Instalación de Ffmpeg

sudo apt-get install ffmpeg

El siguiente video ha sido grabado con recordmydesktop seleccionando la ventana de la terminal.

recordbydesktop

 

Algunas técnicas para crear gif a partir de un video

Primera opción: Generar imágenes con Mplayer y convertir en GIF con Image Magick

A partir del archivo de video generar una serie de imágenes jpeg con Mplayer.

Las imágenes resultantes se cargaran en la carpeta «imagenes».

mplayer -ao null captura.ogv -vo jpeg:outdir=imagenes

capturas

Con las imágenes obtenidos generar los gifs

convert imagenes/* -layers optimize animacion.gif

Crear gif a partir de un video

Este gif tiene un peso de 2,4MB

Segunda opción: Crear paleta con ffmpeg

Generar una paleta a partir del video especificando la escala y la cantidad de frames por segundo.

ffmpeg -y -i captura.ogv \
-vf fps=10,scale=500:-1:flags=lanczos,palettegen paleta.png

Generar el gif a partir de el video y la paleta creada

ffmpeg -i captura.ogv -i paleta.png -filter_complex \
"fps=10,scale=500:-1:flags=lanczos[x];[x][1:v]paletteuse" animacion.gif

Crear gif a partir de un video

El gif resultante pesa 1,5 MB

El siguiente ejemplo presenta el gif con 5 frames por segundo

Crear gif a partir de un video

En este caso el peso se ha reducido a 945 KB

La opción de cambio de frame y de escala permite sacrificar tamaño o calidad de animación según lo creamos conveniente para evitar gifs de gran tamaño.

Tercera opción: Crear imágenes con ffmpeg y crear GIF con Image Magick

Generar con ffmpeg imágenes con el nombre imagen seguido por números incrementales a partir del video seleccionando la escala y los frames por segundo.

ffmpeg -i captura.ogv -vf scale=500:-1:flags=lanczos,fps=10 imagen%03d.png

imagenes

Crear un gif a partir de las imágenes con Image Magick

convert imagen* -layers optimize animacion.gif

 

Crear gif a partir de un video

El gif resultante es de 1,2 MB

Esta última técnica es la que da como resultado el gif más liviano de las tres manteniendo la misma escala y frames por segundo.

Espero que les sea de utilidad! ¿Qué otras técnicas utilizan para crear gif a partir de un video? Espero sus comentarios.

 

 


¿Preguntas? ¿Comentarios?

Si tenés dudas, o querés dejarnos tus comentarios y consultas, sumate al grupo de Telegram de la comunidad JuncoTIC!
¡Te esperamos!


Andrea Navarro

- Ingeniera en Informática - Docente universitaria - Investigadora

2 comentarios

Dario · 24 septiembre, 2016 a las 00:27

Excelente articulo. Muy util para reportar errores por ejemplo, se acabó la excusa de «no puedo reproducir el error» 😛

    Andrea Navarro · 24 septiembre, 2016 a las 00:54

    Muchas gracias por comentar! Me alegro que te haya servido!

Los comentarios están cerrados.