Crear un gif a partir de un video por linea de comandos
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.
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
Con las imágenes obtenidos generar los gifs
convert imagenes/* -layers optimize animacion.gif
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
El gif resultante pesa 1,5 MB
El siguiente ejemplo presenta el gif con 5 frames por segundo
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
Crear un gif a partir de las imágenes con Image Magick
convert imagen* -layers optimize animacion.gif
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.
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.