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"

dmm
fuente
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
slhck
fuente
¡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