Convertir video a GIF en Linux con el terminal

Escrito el y tuvo 1 comentarios

Hay herramientas gráficas que nos permiten hacer esto que les voy a mostrar ahora, pero nunca está de más saber como hacerlo desde el terminal, porque si, somos frikys de la consola.

Los pasos que les voy a mostrar son los mismos que podemos encontrar en XModulo, pero ahí están en Inglés.

La idea es convertir un video, o mejor dicho, una parte de él en un GIF animado con unos simples comandos, haciendo uso de FFMPEG y ImageMagick, los cuales como es lógico, debemos tener instalados para que esto funcione.

Edito: Una vez terminado y publicado el artículo me acabo de percatar de que esto posiblemente también se pueda hacer en macOS. 😉

Seleccionar el video

Este paso es obvio. Debemos seleccionar el video que queremos convertir en .gif sin importar el formato que tenga. Probé con .mkv, .avi, .mpeg y todos funcionaron.

Si queremos una parte exacta del video, o varias partes, debemos saber en que segundo/minuto comienza.

Crear el GIF

Voy a aclarar en este punto un par de cosas. Primero, en el tutorial original se usa como nombre de archivo para el GIF out%04d.gif porque de esa manera, los frames individuales se nombrarán y guardarán correctamente. Para este ejemplo no es necesario.

Y aquí viene la magia. Para este ejemplo, digamos que el video se llama chihuahua.avi y el formato del comando sería:

$ ffmpeg -t <duration> -ss <starting position in hh:mm:ss format> -i <input_video> out%04d.gif

Lo cual, en castellano viene siendo:

$ ffmpeg -t 5 -ss 00:00:10 -i chihuahua.avi animacion1.gif

Esto se traduce a que: extrae 5 segundos del video a partir del minuto 00:10, o sea, a partir de los 10 segundos una vez comenzado el video.

Ahora, si queremos por ejemplo tomar otra parte del video, repetimos el comando cambiando el tiempo de duración, el minuto a partir de cual queremos extraer el video y el nombre del gif.

$ ffmpeg -t 15 -ss 00:00:40 -i chihuahua.avi animacion2.gif

En este caso, extraerá 15 segundos a partir del minuto 00:40.

Unir los gif

Para unir ambos GIF en uno solo, hacemos uso de ImageMagick y una de sus herramientas. Y el comando es el siguiente:

$ convert -delay <ticks>x<ticks-per-second> -loop 0 out*gif <output-gif-file>

En el comando, la opción -delay controla la velocidad de la animación. La opción -loop 0 indica infinitos bucles de animación y si lo desea, puede especificar -loop N, en cuyo caso la animación se repetirá N cantidad de veces.

Por ejemplo, para crear una imagen GIF animada con 20 cuadros por segundo y bucle infinito, use el siguiente comando.

$ convert -delay 1x20 -loop 0 animacion*.gif animacion_final.gif

Reducir un poco el tamaño del GIF

En mi experiencia la reducción no fue muy grande en cuanto a tamaño, pero si queremos ahorrarnos un poco de peso en el GIF, podemos intentar usar este comando:

$ convert -layers Optimize animacion_final.gif animacion_peque.gif

Y eso es todo queridos amigos. Las gracias y los créditos para XModulo.com

Comparte:

¿Ideas? ¿Comentarios?

  1. muy interesante

    Responder

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.