videos sonido programa para online hacer gifs fotos crear con como calidad animados alta windows animated-gif

windows - sonido - programa para hacer gif con fotos



Crea gifs animados a partir de un conjunto de imágenes jpeg. (6)

Basándome en las respuestas de Simon P Stevens y dwurf, se me ocurrió esta solución simplificada:

ffmpeg -f image2 -framerate 1 -i image%d.jpg video.gif

Esto resulta en una tasa de 1 segundo por imagen. Ajuste el valor de la framerate acuerdo a sus necesidades.

Necesito algo que se pueda escribir en Windows 7. Esta imagen se usará en banners.


Con ImageMagick:

convert *.png a.gif


El ffmpeg a .avi y .avi a .gif funcionaron, pero lo único que se debe tener en cuenta es que las imágenes deben nombrarse en perfecto orden numérico creciente para que funcionen, sin espacios. Preparé una secuencia de comandos de Python rápida para cambiar el nombre de todas mis imágenes en consecuencia para que esta receta de ffmpeg funcione:

import os files = [ f for f in os.listdir(''.'') if os.path.isfile(os.path.join(''.'',f)) and f.endswith(''.jpg'') ] for i, file in enumerate(sorted(files)): os.rename(file, ''image%03d.jpg'' % i)

Y luego me topé con un enfoque mucho más simple que ffmpeg para hacer la conversión, que simplemente está usando la herramienta de conversión de línea de comandos de ImageMagick como esta.

convert image%03d.jpg[0-198] animated_gif.gif

No se pone mucho más simple que esa gente.

Gist aquí: https://gist.github.com/3289840


Puedes hacerlo con ffmpeg

Primero convierte las imágenes a un video:

ffmpeg -f image2 -i image%d.jpg video.avi

(Esto convertirá las imágenes del directorio actual (llamado image1.jpg, image2.jpg ...) a un archivo de video llamado video.avi.)

Luego convierte el avi en un gif:

ffmpeg -i video.avi -pix_fmt rgb24 -loop_output 0 out.gif

Puedes obtener los binarios de Windows para ffmpeg aquí .

También puedes hacer algo similar con mplayer . Ver Codificación de múltiples archivos de imagen de entrada .

Creo que la línea de comando sería algo como:

mplayer mf://*.jpg -mf w=800:h=600:type=jpg -vf scale=160:120 -vo gif89a:fps=3:output=out.gif

(Donde 800 y 600 son su ancho y alto de origen y 160 y 120 son el ancho y alto de destino. Out.gif es su nombre de archivo de destino)

Acabo de probar ambos y ambos funcionan bien. Sin embargo obtuve resultados mucho mejores de mplayer ya que pude especificar la resolución y la tasa de cuadros. Su kilometraje puede variar y estoy seguro de que podría encontrar más opciones para ffmpeg si mirara.


Solo me gustaría agregar a la respuesta de dwurf , que esto generará un gif con la paleta estándar de 256 colores, que no se ve muy agradable visualmente.

He encontrado two blog-posts he adaptado a mis necesidades para mejorar la calidad visual mediante el uso de una paleta personalizada para tu animación:

Genera la paleta de colores:

ffmpeg -f image2 -i image%d.jpg -vf scale=900:-1:sws_dither=ed,palettegen palette.png

Convierta las imágenes en un video regular con la tasa de cuadros deseada, porque el tercer comando solo funcionó con un video de entrada único y no con un montón de imágenes

ffmpeg.exe -f image2 -framerate 1.2 -i image%d.jpg video.flv

Ahora convierta el video generado con la paleta generada en un gif más hermoso:

ffmpeg.exe -i video.flv -i palette.png -filter_complex "fps=1.2,scale=900:-1:flags=lanczos[x];[x][1:v]paletteuse" video.gif


La respuesta de Simon P Stevens casi me lleva allí:

ffmpeg -f image2 -i image%d.jpg video.avi ffmpeg -i video.avi -pix_fmt rgb24 -loop_output 0 out.gif

A ver si podemos mejorar esto.

Pasar por un avi no es necesario. Un -pix_fmt de rgb24 no es válido, y la opción -loop_output evita el bucle, lo que no quiero. Obtenemos:

ffmpeg -f image2 -i image%d.jpg out.gif

Mis imágenes de entrada están etiquetadas con un número de 3 dígitos sin relleno y tengo 30 de ellas (image_001.jpg, image_002.jpg, ...), así que necesito corregir el especificador de formato

ffmpeg -f image2 -i image_%003d.jpg out.gif

Mis imágenes de entrada son de la cámara de mi teléfono, ¡son demasiado grandes! Necesito reducirlos.

ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299 out.gif

También necesito rotarlos 90 grados hacia la derecha

ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299,transpose=1 out.gif

Este gif jugará con cero demora entre fotogramas, que probablemente no sea lo que queremos. Especifique la tasa de cuadros de las imágenes de entrada.

ffmpeg -f image2 -framerate 9 -i image_%003d.jpg -vf scale=531x299,transpose=1 out.gif

La imagen es solo un poco demasiado grande, así que recortaré 100 píxeles del cielo. La transposición hace que esto sea difícil, yo uso los valores x y y post-rotados:

ffmpeg -f image2 -framerate 9 -i image_%003d.jpg -vf scale=531x299,transpose=1,crop=299,431,0,100 out.gif

El resultado final: puedo compartir la increíble expresión facial de mi compañero con el mundo: