¿Puede ffmpeg leer imágenes de gif?


4

Tengo muchas imágenes gif similares y quiero hacer una película de esa manera:

ffmpeg -i img%06d.gif -c:v libx264 mymovie.mp4

Si todas las imágenes son JPEG, todo funciona bien. Pero los GIF están atascados con el mensaje:

img%06d.gif: No such file or directory
Conversion failed!

¿Es posible procesar gifs con ffmpeg?

Hay alrededor de 30 GB de gifs, por lo que la conversión a JPEG no es una opción.


Sí. Otro caso está resuelto.

ffmpegtrata los GIF como películas, no como una sola imagen. Siempre. Por lo tanto, tenemos que hacer concatvideostreams en lugar de agrupar los marcos. Aquí está la solución:

ffmpeg -f concat -i filelist.txt -c:v libx264 mymovie.mp4

filelist.txt de acuerdo con el manual de ffmpeg debe ser el siguiente formato:

# some comment
file '/path/img000001.gif'
file '/path/img000002.gif'
file '/path/img000003.gif'
. . . . .

¿Podría ser eso un error? Si corres ffmpeg -f image2 -i img%06d.gif -c:v libx264 mymovie.mp4, ¿eso funciona?
slhck

2
[image2 @ 0x80647a420] No se pudieron encontrar los parámetros del códec para la secuencia 0 (Video: ninguno): tamaño no especificado Considere aumentar el valor de las opciones de 'analizado' y 'sondeo'% 06d.gif: no se pudieron encontrar los parámetros del códec
Kondybas

Respuestas:


2

ffmpeg trata los GIF como películas, no como una sola imagen. Siempre. Por lo tanto, tenemos que concatar videostreams en lugar de agrupar los marcos. Aquí está la solución:

ffmpeg -f concat -i filelist.txt -c:v libx264 mymovie.mp4

filelist.txt de acuerdo con el manual de ffmpeg debe ser el siguiente formato:

# some comment
file '/path/img000001.gif'
file '/path/img000002.gif'
file '/path/img000003.gif'
. . . . .

Si tiene muchos archivos, con Bash o Zsh puede hacer:ffmpeg -f concat -i <(for f in /path/*.gif; do echo "file '$f'"; done) -c:v libx264 output.mp4
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.