본문 바로가기
Operating System, OS/macOS

이미지로 GIF 만들기 (FFmpeg 사용)

by curious week 2026. 10. 15.

1. FFmpeg 설치

1) 설치 확인

ffmpeg -version

2) brew로 설치

brew install ffmpeg

만약 homebrew도 설치되지 않았다면,

더보기
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 이미지로 GIF 만들기

현재 폴더에 아래와 같은 파일은 이름의 파일들이 있다면,

.
├── 3_h36.png
├── 4_h36.png
├── 5_h36.png
├── 6_h36.png
└── 7_h36.png

1) 터미널에서 폴더 경로로 이동

cd [폴더 경로로 교체]

2) ffmpeg로 gif 생성

기본으로 사용할 수 있는 명령어:

ffmpeg -framerate 1 -i "%03d.png" \
  -vf "scale=960:-1:flags=lanczos" \
  -loop 0 output.gif

이름이 001.png에서 002 ... 로 이어지는 여러 장을 사용한다면 위 명령어를 사용해서 '960px GIF' 생성이 가능하다.

output.gif

2-0) 실제 사용한 명령어

ffmpeg -framerate 2 \
  -start_number 3 \
  -i "%d_h36.png" \
  -vf "format=rgba,split[fg][bg];[bg]drawbox=c=white:t=fill[white];
  [white][fg]overlay=format=auto,format=rgb24,scale=960:-1:flags=lanczos" \
  -loop 0 -y output.gif

 

배경이 없는 검정 그림의 png 파일이고 작은 사이즈였기 때문에 배경과 사이즈 조절 등 옵션을 넣었다.

2-1) -framerate — 이미지 표시 시간 조절

FPS(Frames Per Second): 초당 표시하는 이미지 수

-framerate 0.5 2초
-framerate 1 1초
-framerate 2 0.5초
-framerate 5 0.2초
-framerate 10 0.1초

값이 클수록 빠르게 재생됩니다.

2-2) -start_number — 시작 이미지 번호 지정

-start_number 1 1_h36.png
-start_number 3 3_h36.png
-start_number 5 5_h36.png

이미지 파일명의 숫자가 연속되어 있어야 한다.

2-3) -i — 입력 파일 지정

Input: 입력

%d_h36.png 3_h36.png
%1d_h36.png 3_h36.png
%02d_h36.png 03_h36.png
%03d_h36.png 003_h36.png

%d는 숫자, %03d는 앞을 0으로 채운 세 자리 숫자입니다.

2-4) -vf — 이미지 필터 적용

Video Filter: 영상 필터

format=rgba RGB 색상과 투명도 정보 사용
split[fg][bg] 이미지를 두 흐름으로 복제
drawbox=c=white:t=fill 흰색으로 전체 영역 채우기
overlay=format=auto 배경 위에 원본 이미지 합성
format=rgb24 투명도 없는 RGB 형식으로 변환
scale=960:-1 가로 960px, 세로 비율 자동 유지
flags=lanczos 고품질 크기 조정 필터

참고로 fg는 Foreground(전경), bg는 Background(배경), rgba의 A는 Alpha(투명도)를 의미합니다.

2-5) scale — 출력 이미지 크기 조절

scale=640:-1 가로 640px
scale=800:-1 가로 800px
scale=960:-1 가로 960px
scale=1280:-1 가로 1280px
scale=-1:720 세로 720px

-1은 원본의 가로세로 비율을 유지하도록 자동 계산한다는 의미입니다.

2-6) -loop — GIF 반복 설정

-loop 0 무한 반복
-loop 1 1회 재생 후 종료
-loop 3 총 3회 재생 후 종료

2-7) -y — 기존 파일 덮어쓰기

-y 확인 없이 기존 파일 덮어쓰기
-n 기존 파일이 있으면 덮어쓰지 않음
옵션 생략 기존 파일이 있으면 덮어쓰기 여부 질문

2-8) output.gif — 출력 파일 지정

변환이 완료된 GIF 파일의 이름과 저장 위치를 설정.

output.gif

현재 폴더에 저장합니다.

./images/animation.gif

images 폴더에 animation.gif라는 이름으로 저장. 해당 폴더는 미리 존재해야 한다.