Tutorial

Cómo convertir un vídeo a GIF usando ffmpeg

En algunas ocasiones, es necesario convertir un vídeo a GIF. Estos dos formatos, aunque puedan parecer muy diferentes, no lo son tanto. Tanto en el vídeo como en el GIF tenemos una consecución de frames o fotogramas para generar sensación de movimiento o cambio. Sin embargo, en el GIF hay muchos menos fotogramas, son de peor calidad, y es una secuencia mucho más corta.

Sea como sea, si tienes un vídeo corto que quieras pasar a formato .gif, aquí te explicaremos pasoa  paso cómo hacerlo desde Linux usando tan solo una herramienta muy sencilla, pero muy poderosa, como es ffmpeg.

¿Qué es FFmpeg?

Convertir video a GIF

FFmpeg es una herramienta muy completa y poderosa, pese a su aspecto de sencillez. Además, es tan oderosa que se usa como motor para otras muchas aplicaciones de edición de vídeo conocidas. Con ella se puede convertir entre formatos de imagen, vídeo y audio, también se pude codificar, decodificar, realizar transcode, mux, demux, filtrado, corregir errores, y mucho más.

Además, FFmpeg, pese a su nombre, soporta una enorme cantidad de codecs de imagen, audio y vídeo diferentes, además de ser toda una navaja suiza del contenido multimedia.

De hecho, FFmpeg es tan poderosa y fiable que se ha empleado hasta en proyectos espaciales, como para la codificación y transmisión de vídeo desde Marte en las misiones de la NASA. Y todo con un coste cero y siendo de código abierto y libre, bajo licencia GPL.

Desgraciadamente, esta herramienta multiplataforma carece de una interfaz gráfica, por lo que tendremos que usar la CLI en vez de una GUI. Sin embargo, como podrás comprobar, no es tan complicada de usar.

Pre-requisitos

Para poder realizar este tutorial, necesitarás una serie de paquetes instalados en tu distro favorita. No obstante, no te preocupes, puesto que te enseñaré cómo puedes hacer esta instalación. Ahora bien, centrándonos en los paquetes necesarios, te recomiendo tener:

  • FFmpeg v2.6 o superior, ya que a partir de esta están disponibles ciertos filtros aconsejables.
  • Gifsicle, no es un paquete obligatorio, pero es una buena opción para reducir el tamaño del GIF si quieres usarlo para apps de mensajería instantánea o para redes sociales.

Por otro lado, hay que decir que ambos paquetes se encuentran disponibles en los repositorios de las distros más conocidas, por lo que no tendrás que descargar el código fuente y compilar o acudir a páginas de descarga. Simplemente usar el gestor de paquetes nativo de tu distro.

Te recomendamos la lectura:  Cómo instalar Pale Moon en Ubuntu 18.04

Convertir vídeo a GIF paso a paso

Vamos allá con nuestro tutorial sobre cómo convertir vídeo a GIF explicado de forma fácil y paso por paso, para que no te pierdas. Como he comentado anteriormente, todo se realizará desde la línea de comandos, pero verás como no tiene demasiada complicación.

Instalar FFmpeg

Aunque existen varias opciones para instalar el paquete FFmpeg, una de las más sencillas es usar los repos y tu gestor de paquetes.

Para ello, si tienes una distro Debian/Ubuntu o derivados, puedes ejecutar el siguiente comando en la consola:

sudo apt-get update
sudo apt-get install ffmpeg

Para distros CentOS/RHEL o derivados, la forma de instalar sería la siguiente:

sudo yum install epel-release
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
sudo yum install ffmpeg

En Fedora y derivados también puedes usar simplemente:

$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install ffmpeg ffmpeg-devel

Para Archi Linux y derivados:

sudo pacman -S ffmpeg
yay -S ffmpeg-git
yay -S ffmpeg-full-git

Para openSUSE y derivados:

-------------- On openSUSE Tumbleweed --------------
$ sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' packman
$ sudo zypper refresh
$ sudo zypper install --from packman ffmpeg

-------------- On openSUSE Leap --------------
$ sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman
$ sudo zypper refresh
$ sudo zypper install --from packman ffmpeg

Y si quieres complicarte un poco más la vida o tienes otra distro no listada aquí, también puedes instalarlo desde el código fuente de FFmpeg.

Una vez instalada, sea con el procedimiento que sea, puedes comprobar la versión con este otro sencillo comando, que sirve para cualquier distro GNU/Linux:

ffmpeg -version

Si quieres instalar también el paquete gifsicle, entonces las formas de hacerlo serían similares a las del caso anterior, los comandos para las diferentes distros serían en este caso sería sustituir el nombre del paquete ffmpeg por el de este otro.

Crear una paleta personalizada

Una vez que ya tienes FFmpeg instalado, ahora vamos a crear primero una paleta personalizada. Tienes que saber que por defecto, FFmpeg emplea paletas de 256 colores para cualquier GIF, pero si eso no es lo que quieres, puedes cambiar este valor predeterminado para conseguir calidades más altas. Por ejemplo, imagina que tienes el vídeo que quieres convertir en el directorio /home y que se llama ejemplo.mkv. En este caso, el comando sería:

ffmpeg -ss 00:01:30 -t 5 -i ejemplo.mkv -filter_complex "[0:v] palettegen" paleta.png

Por supuesto, puedes cambiar los parámetros según lo que necesites en tu caso. Además, te explico para qué sirve cada una de las opciones:

  • -ss –> Es el argumento de ffmpeg que se encarga de marcar el punto de inicio del vídeo desde donde quieres comenzar. En este caso he elegido el minuto 1 y 30 segundos, pero puedes usar lo que necesites en tu caso.
  • -t –> Marca la duración, en este caso serían 5 segundos para el GIF, pero nuevamente puedes poner los segundos que quieras.
  • -i –> Este argumento sirve para determinar cuál es el vídeo que se usará como entrada para convertirlo a GIF.
  • -filter_complex  –> Aplica filtros, en este caso se ha añadido el filtro palettegen.
Te recomendamos la lectura:  Cómo instalar el editor de vídeo Kdenlive en Ubuntu

Ahora ya habrás creado el fichero llamado paleta.png, que será necesario para el paso siguiente.

Crear el GIF

El siguiente paso es crear el GIF como tal, es decir, convertir definitivamente tu vídeo a GIF. Y para ello vamos a usar la paleta personalizada que hemos empleado en el paso anterior. El comando en este caso es:

ffmpeg -ss 00:01:30 -t 5 -i ejemplo.mkv -i paleta.png -filter_complex "[0:v] fps=10,scale=720:-1 [new];[new][1:v] paletteuse" resultado.gif

Una vez ejecutado este comando, el resultado será que se ha creado un fichero llamado resultado.gif en el directorio en el que te encuentras actualmente. Evidentemente, tienes la posibilidad de cambiar el nombre a tu gusto.

En este caso, ya conocerás algunas de los argumentos del paso anterior, pero te explico las nuevas que han aparecido en este otro comando:

  • fps= –> Sirve para especificar el frame rate o tasa de fotogramas que tendrá el GIF. Mientras mayor sea, más ocupará y más calidad tendrá. En este caso he elegido 10, es decir, 10 FPS, 10 frames por segundo.
  • scale –> Esta otra opción de ffmpeg sirve para redimensionar el vídeo. En este caso hemos usado 720:-1, esto quiere decir que tendrá un ancho de 720 px y que la altura será la misma que la del vídeo de origen.
  • paletteuse –> Este argumento servirá para usar el archivo con la paleta personalizada que hemos creado en el paso anterior. Si no se pusiese se usará la paleta por defecto como dije anteriormente.

Conclusión

Como puedes ver, pese a que ffmpeg puede ser muy complejo y tener muchos argumentos, convertir un vídeo a GIF no tiene demasiada complicación si sigues estos pasos.

Espero haberte ayudado. No olvides comentar…

Publicaciones relacionadas

Deja una respuesta

Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar mi política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected].

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *

Botón volver arriba