Estou tentando criar uma animação GIF a partir de vários quadros de um vídeo. Eu quero que o resultado seja pequeno limitando as cores, mas sem faixas.
Então, na minha cabeça, pensei em ler os arquivos, depois em reduzir as cores e depois em hesitar. Depois de ler um monte de teoria de operação do ImageMagick em seu site, esta é a linha de comando que eu criei:
convert -size 640x640 -colors 64 *.png -ordered-dither o8x8,8,8,4 +map \
-layers Optimize output.gif
Os arquivos .png
foram gerados a partir do vídeo usando ffmpeg
da seguinte forma:
ffmpeg -i source.mp4 -ss 10:01.123 -to 10:03.321 frames/source_%03d.png
Não sei bem onde colocar a cláusula -colors 64
. Devo colocá-lo antes da parte *.jpg
ou depois? Ou mesmo depois da -ordered-dither o8x8,8,8,4
parte?
Obrigado por qualquer ajuda. Eu sou novo no ImageMagick, então, por favor, seja gentil: -)
Atualização 1:
Então, eu brinquei e obtive resultados não intencionais (para mim):
-delay 12 -colors 128 *.png -resize 640x640 -ordered-dither o8x8,8 -deconstruct +map \
-layers Optimize output_1.gif
Result: 3.09 MB, Good quality
-delay 12 *.png -colors 128 -resize 640x640 -ordered-dither o8x8,8 -deconstruct +map \
-layers Optimize output_2.gif
Result: 3.09 MB, Good quality
-delay 12 *.png -resize 640x640 -colors 128 -ordered-dither o8x8,8 -deconstruct +map \
-layers Optimize output_3.gif
Result: 4.41 MB, Degraded quality
-delay 12 *.png -resize 640x640 -ordered-dither o8x8,8 -colors 128 -deconstruct +map \
-layers Optimize output_4.gif
Result: 2.77 MB, Good quality
-delay 12 <individual .png followed by -colors 128 each> -resize 640x640 \
-ordered-dither o8x8,8 -colors 128 -deconstruct +map -layers Optimize output_5.gif
Result: 3.09 MB, Slightly Better quality
Resumindo: Todas as combinações produzem uma qualidade realmente boa, exceto a combinação # 3, que não apenas produziu um resultado visivelmente degradado, mas também o maior.
Isso é bem inesperado ... o que você acha: como o resultado pode variar muito assim?