Convertir vídeo a GIF sin pérdida de calidad. Entrada super breve con un par de comandos que he descubierto recientemente para convertir video a GIF sin pérdida calidad.
El caso es que últimamente estoy generando algunos GIFs a partir de capturas de pantalla del ordenador generadas con Quicktime. Videos en .MOV o .MP4 que luego quiero convertir en GIF para compartir en Twitter, sin pérdida de calidad, sin tirones, preservando los colores, etc.
Convertir vídeo a GIF sin pérdida de calidad
Yo estoy usando ffmpeg sobre MacOS (instalado con macports), aunque si no me equivoco está disponible para cualquier sistema operativo.
Para conseguir la mayor calidad posible, hay que generar el GIF utilizando una paleta de color que sea representativo del vídeo que queremos convertir.
ffmpeg permite crear una paleta de color del vídeo con este comando:
Terminal: ~
$ |
|
Donde input.mp4 es el vídeo del que queremos obtener la paleta.
Lo importante aquí son los parámetros -ss (start second) y -t (duración en segundos del fragmento) que nos permiten seleccionar la porción del vídeo que mejor representa los colores que va a tener el GIF final.
Si por el contrario queremos generar la paleta a partir de todo el contenido del vídeo, no utilizar dichos parámetros (-ss y -t).
Una vez tenemos generada la paleta, entonces generamos el GIF con el siguiente comando:
"ffmpeg -i input.mp4 -i palette.png -filter_complex "fps=50,scale=640:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif"
Donde input.mp4 es el vídeo que queremos convertir a GIF sin pérdidas y palette.png es la paleta que hemos obtenido con el comando anterior.
Importante: algunas plataformas (como Twitter) tienen un límite en cuanto al tamaño de los GIFs que puedes publicar (15MB en el caso de Twitter), así que para reducir el tamaño del GIF hay dos opciones, jugar con la duración del mismo, reducir el frame rate (normalmente con 20 o 30 frames por segundo debería ser suficiente) o reducir el tamaño en píxeles del GIF.