Convertir varios GIF


0

¿Cómo se pueden convertir varios GIF animados a video?

Uso este comando para convertir 1 gif animado a video:

ffmpeg -i aa0012.gif -crf 12 output.mp4

Este es un comando más complejo para controlar las dimensiones del GIF convertido:

ffmpeg -i aa0012.gif -vf "scale=min(1920/iw\,1920/ih)*iw:min(1920/iw\,1920/ih)*ih,pad=1920:1920:(1920-(min(1920/iw\,1920/ih)*iw))/2:(1920-(min(1920/iw\,1920/ih)*ih))/2" -c:v libx264 output.mp4

He intentado usar:

-pattern_type glob -i '*.gif'

Lo que funciona para la mayoría de los archivos de imagen, pero cuando intento si con GIF devuelve el error "* .gif: No existe tal archivo o directorio"


múltiples gifs en un video? o múltiples gifs en múltiples videos? convertir gifs en video HD?
— Logman

su error "No existe tal archivo o directorio", probablemente necesite definir la ruta completa o establecer el directorio de trabajo actual.
— Logman

Me refiero a múltiples gifs en 1 video. Pero ambas opciones serían buenas si conoces ambas soluciones. No los estoy convirtiendo en video HD, pero uso ese comando para archivar imágenes en video.
— dmm

Dado que tengo el terminal Cd'ed en la carpeta que tiene los gifs, ¿no debería eso cancelar la necesidad de definir la ruta?
— dmm

"Me refiero a varios gifs en 1 video". -> ¿Todos los gifs tienen la misma resolución? Propiedades? ¿Colores? eso podría estar causando los problemas
— Logman

Respuestas:


3

Los GIF animados se manejan de manera diferente a las "imágenes" normales. De hecho, son más como videos reales. Es por eso que no puede usar el demuxer de imagen (es decir, no puede usar la -pattern_typeopción) allí.

Lo que debe hacer es convertir cada uno individualmente en un archivo intermedio con las mismas propiedades, luego concatenarlos .

ffmpeg -i gif1.gif -vf "…" -r 25 -c:v ffv1 output1.avi
ffmpeg -i gif2.gif -vf "…" -r 25 -c:v ffv1 output2.avi
…
ffmpeg -i "concat:output1.avi|output2.avi" -c:v libx264 output.mp4

¡Gracias! Lo probé y funciona. Pero cambié ffv1 a libx264, ya que el tamaño del archivo era demasiado grande con la opción ffv1. Me pregunto si se podría crear un script bash para convertir múltiples GIF, usando su comando.
— dmm

Si usa libx264 en lugar de FFV1, entonces hará dos codificaciones con pérdida. Esto no es recomendable, ya que perderá calidad. Si desea permanecer con libx264, elija los intermedios -c:v libx264 -preset ultrafast -crf 18. Esto ciertamente se puede automatizar con bash ...
— slhck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.