У меня есть ряд приблизительно 500 изображений JPEG. Коллективный размер набора составляет приблизительно 60 МБ, и каждое изображение имеет размеры 480 x 270. Я хочу преобразовать эти изображения в анимированный GIF.
Я попытался преобразовать эти изображения в анимированный GIF следующим образом в моей i7 системе с 16 ГБ RAM:
export MAGICK_THREAD_LIMIT=1
convert -delay 5 -loop 0 -layers optimize -limit memory 64 *.jpg output.gif
Однако, когда я делаю это, большая часть системных ресурсов подняты, что система становится неприменимой и прекращает работу.
Так, каков был бы хороший способ сделать анимированный GIF на Ubuntu?
Следующая процедура препятствует тому, чтобы ImageMagick потреблял чрезмерные системные ресурсы. Это было проверено с ImageMagick 6.8.9-9 на Ubuntu 15.04. Чтобы проиллюстрировать процедуру, я использую пример преобразования видео к оживленному GIF.
Созданный ImageMagick, таким образом, что это не потребляет чрезмерные системные ресурсы:
export MAGICK_MEMORY_LIMIT=1024
export MAGICK_MAP_LIMIT=1024
export MAGICK_AREA_LIMIT=4096
export MAGICK_FILES_LIMIT=1024
export MAGICK_THREAD_LIMIT=1
export MAGICK_TMPDIR=/home/user/tmp
переменная окружения MAGICK_THREAD_LIMIT
пределы количество нитей, используемых ImageMagick (то, когда это построено с OpenMP, позволило). Переменная окружения MAGICK_TMPDIR
является путем к справочнику, в котором ImageMagick может хранить временные файлы. Это особенно полезно для изображений структуры относительно большого размера, потому что это избегает чрезмерного использования памяти RAM.
Готовят входное имя файла, имя файла продукции и справочник, в котором должны быть сохранены изображения структуры.
filename1=2015-11-09T1300Z.mp4
filename2=2015-11-09T1300Z.gif
directoryName1="tmp_images"
Новообращенный видео ко многим изображениям структуры (устанавливающий сроки как соответствующие; в этом примере, от 0 секунд до 30 секунд).
mplayer -ao null -ss 0:00:00 -endpos 30 "${filename1}" -vo jpeg:outdir="${directoryName1}":quality=100
, Если разумный для ограничений размера файла продукции, уменьшите размер видео структур (в этом примере на 50%).
mogrify -resize 50% "${directoryName1}"/*.jpg
Использование ImageMagick, чтобы преобразовать изображения структуры в оживленный GIF.
convert -delay 5 -loop 0 -layers optimize -limit memory 64 "${directoryName1}"/*.jpg "${filename2}"