Я пытаюсь создать GIF-анимацию из нескольких кадров видео. Я хочу, чтобы результат был небольшим, ограничивая цвета, но без полос.
Поэтому я подумал о том, чтобы прочитать файлы, затем уменьшить цвета, а затем сменить их. После прочтения большого количества теории работы ImageMagick на их веб-сайте, я пришел к командной строке:
convert -size 640x640 -colors 64 *.png -ordered-dither o8x8,8,8,4 +map \
-layers Optimize output.gif
Файлы .png
были сгенерированы из видео с использованием ffmpeg
следующим образом:
ffmpeg -i source.mp4 -ss 10:01.123 -to 10:03.321 frames/source_%03d.png
Хотя я не совсем уверен, куда поместить -colors 64
. Должен ли я поставить его до *.jpg
части или после? Или даже после -ordered-dither o8x8,8,8,4
часть?
Спасибо за любую помощь. Я совсем новичок в ImageMagick, поэтому, пожалуйста, будьте осторожны :-)
Обновление 1:
Итак, я поиграл и получил следующие неинтуитивные (для меня) результаты:
-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
Короче говоря: все комбинации дают действительно хорошее качество, кроме комбинации № 3, которая не только дает заметно ухудшенный результат, но и является самой большой.
Это довольно неожиданно ... что вы думаете: как мог результат так дико варьироваться?