이미지 세트를 사용하여 Ubuntu에서 애니메이션 GIF를 어떻게 만들 수 있습니까?

이미지 세트를 사용하여 Ubuntu에서 애니메이션 GIF를 어떻게 만들 수 있습니까?

약 500개의 JPEG 이미지 세트가 있습니다. 세트의 총 크기는 약 60MB이고 각 이미지의 크기는 480 x 270입니다. 이 이미지를 애니메이션 GIF로 변환하고 싶습니다.

16GB RAM을 갖춘 i7 시스템에서 다음과 같은 방법으로 이러한 이미지를 애니메이션 GIF로 변환하려고 시도했습니다.

export MAGICK_THREAD_LIMIT=1
convert -delay 5 -loop 0 -layers optimize -limit memory 64 *.jpg output.gif

그런데 이렇게 하면 시스템 리소스를 너무 많이 차지하게 되어 시스템을 사용할 수 없게 되고 정지하게 됩니다.

그렇다면 우분투에서 애니메이션 GIF를 만드는 좋은 방법은 무엇일까요?

답변1

다음 절차는 ImageMagick이 과도한 시스템 리소스를 소비하는 것을 방지합니다. Ubuntu 15.04에서 ImageMagick 6.8.9-9로 테스트되었습니다. 절차를 설명하기 위해 비디오를 애니메이션 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_LIMITImageMagick이 사용하는 스레드 수를 제한합니다(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}"

관련 정보