¿Hay alguna forma de convertir un gif animado a un formato de video (por ejemplo, .avi
) en Linux?Gif animado a avi en linux
Ya he probado
ffmpeg -i thegif.gif thevideo.avi
pero lo único que consigue es la primera imagen del vídeo.
¿Hay alguna forma de convertir un gif animado a un formato de video (por ejemplo, .avi
) en Linux?Gif animado a avi en linux
Ya he probado
ffmpeg -i thegif.gif thevideo.avi
pero lo único que consigue es la primera imagen del vídeo.
puedo sugerir combinación de ImageMagick y ffmpeg
hacer esto para extraer cada fotograma como png/jpeg
$magick> convert 'images.gif[0]' image.png
hacer esto para convertir las imágenes en secuencia de la película
ffmpeg -f image2 -i image%d.jpg video.mpg
Más ayuda en los comandos
http://www.imagemagick.org/script/command-line-processing.php
http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs
Si su gif tiene transperance, tiene que agregar -coalesce como este: convertir -coalesce download.gif%% 05d.png –
-1, porque su primer comando no funciona. Pero el comando de NordicMainframe funciona. – erik
Esto pierde la información de velocidad de cuadro del gif de entrada. ffmpeg actual ahora maneja la entrada animada gif directamente. –
entrada gif de ffmpeg no funciona demasiado bien. Por lo general es más fácil para desempaquetar los marcos del GIF con convert (de ImageMagick) y procesar estos con ffmpeg:
convert some.gif some%05d.png
ffmpeg -i some%05d.png some.avi
rm some*.png
Gracias. Estaba buscando su primera línea de comando: 'convert some.gif some% 05d.png' – Dorian
Si algunos marcos están rotos porque solo muestran diferencia con el marco base, use la opción' -coalesce' para 'convertir'. – Hnatt
cuando usa '-coalesce' puede necesitar eliminar el primer cuadro porque no tiene el mismo formato que los demás (' PseudoClass' en lugar de 'DirectClass'). Puede existir un método para convertirlo ... – xiawi
Si te gusta tener una cierta tasa de fotogramas como entrada debido a que el vídeo resultante es rápido o para ralentizar
ffmpeg -r 'xx' -i some%05d.png some.avi
donde xx es el framerate de entrada.
Si te gusta tener un bucle como salida
ffmpeg -loop 1 -t x -i some%05d.png some.avi
donde x es el tiempo que el vídeo debe funcionar en cuestión de segundos.
Si no quieres los archivos temporales, puede intentar mencoder:
mencoder myfile.gif -mf fps=25 -o myfile.avi -ovc lavc -lavcopts vcodec=mpeg4
ffmpeg -i foo.mkv foo.gif trabaja con ffmpeg actual, e incluso funciona bien con gifs animados de imágenes por segundo variables . Con la salida de mkv, obtienes una velocidad de cuadro variable mkv. Con la salida de mp4, aumenta los fps tan alto como sea necesario, y luego duplica los cuadros según sea necesario para que las cosas se muestren cuando corresponda. p.ej. un gif con unos 25 fps y unos 10 fps hicieron un mp4 a 50 fps, con 2x dups y 5x dup frames dependiendo de qué parte. Almacenar marcos duplicados no requiere mucho espacio, IDK si están incluso en la secuencia h.264 o simplemente en el contenedor mp4. –