Tuve la necesidad de convertir un video en formato OGV a GIF (imagen animada) y, una vez más, recurrí a ffmpeg, el cual me dio excelentes resultados en comparación a las herramientas online disponibles de manera gratuita en Internet.



Para convertir un video a GIF con ffmpeg, es tan simple como ejecutar desde línea de comandos:

$ ffmpeg -i VIDEO SALIDA.gif

VIDEO es el archivo de video que se desea convertir y SALIDA.gif es el GIF resultante.

Este comando produce un archivo .gif con las mismas dimensiones y duración del video de entrada.

También es posible recortar una parte del video utilizando las opciones -t y -ss.

Con -t se especifica la duración (en segundos) y con -ss el tiempo de inicio en formato hh:mm:ss. Por ejemplo, si se desea obtener un GIF de 5 segundos a partir de los 10 segundos desde el inicio (es decir desde el tiempo 00:00:10 hasta 00:00:15), ejecutar:

$ ffmpeg -t 5 -ss 00:00:10 -i VIDEO SALIDA.gif

Ejemplo

A partir del siguiente video (atop.ogv), cuya dimensión es de 1232x720 pixeles:

Deseo convertirlo a GIF:

emi@hal9000:~ % ffmpeg -i atop.ogv atop-original.gif

El resultado es el siguiente GIF (clic para ver en tamaño original):

El cual sorprendentemente ocupa menos de 800 KB:

emi@hal9000:~ % ll -h atop-original.gif
-rw-r--r--  1 emi  wheel   792K Jun  8 08:30 atop-original.gif

Si además de convertirlo a GIF se desea modificar su dimensión, es posible recurrir a la opción -vf de la siguiente forma: -vf scale=800:-1:flags=lanczos. La escala indica el ancho que se desea, en este caso 800 pixeles (la altura se calcula proporcionalmente):

emi@hal9000:~ % ffmpeg -i atop.ogv -vf scale=800:-1:flags=lanczos atop.gif

El resultado es un GIF de 800x468 pixeles de apenas 362 KB:

emi@hal9000:~ % ll -h atop.gif
-rw-r--r--  1 emi  wheel   362K Jun  8 09:14 atop.gif

En Internet existen cientos de herramientas online para convertir video a GIF de manera gratuita, con lo cual se me ocurrió probar una para comparar los resultados (en cuanto a dimensiones, duración, tamaño y calidad). En este caso ezGIF (primero en los resultados de la búsqueda de Google):

Se observa que para conseguir un GIF de 800x468 con la misma duración del video, el resultado es de casi 1 MB. Esto es el triple de tamaño en comparación al GIF creado directamente con ffmpeg.

Para más información sobre ffmpeg, recurrir a su página de manual:

man ffmpeg

Referencias


Tal vez pueda interesarte


Compartí este artículo