그동안 설정 관련 글을 여러 편 올렸는데, 다시 읽어보니 내용이 겹치고 틀린 곳도 있었습니다. 품질 숫자가 낮을수록 고화질이라고 적은 글도 있었는데, 반대입니다. 헷갈리게 해서 죄송해요. 그래서 실제 코드가 어떻게 동작하는지를 기준으로 이 글 하나에 다시 정리했습니다.
2026년 11월 업데이트: 이제 변환기에서 이 값들을 직접 넣지 않아요. 영상 길이와 해상도에 맞춰 자동으로 정하고, 화질 눈금(저사양~고사양) 하나로 고르게 바꿨어요. 이 글은 그 뒤에서 각 값이 무엇을 바꾸는지 설명하는 글로 읽어 주세요. 아래 비교 GIF와 화면은 직접 값을 넣던 예전 버전으로 만든 거예요.
먼저 결과부터
같은 4.5초짜리 영상입니다. 왼쪽은 예전 버전에서 아무것도 안 건드린 결과고, 오른쪽은 고급 설정에서 두 값만 바꾼 결과예요.

바꾼 건 프레임 간격(0.3 → 0.1초)과 품질(90 → 100)입니다. 왼쪽이 묘하게 빨리 감기처럼 보이는 이유가 이 글의 핵심이라, 하나씩 설명해 볼게요.
프레임 간격: 원본에서 몇 초마다 한 장씩 뽑을지
변환기는 영상을 처음부터 끝까지 이 간격만큼 건너뛰면서 장면을 캡처합니다. 0.3초라면 0초, 0.3초, 0.6초… 이런 식이에요. 그래서 GIF에 들어가는 장수는 거의 이걸로 정해집니다.
장수 ≈ 영상 길이 ÷ 프레임 간격
4.5초 영상, 간격 0.3초 → 15장
4.5초 영상, 간격 0.1초 → 45장
간격을 줄이면 움직임이 촘촘해지고, 늘어난 장수만큼 용량도 커집니다. 이 변환기에서 고를 수 있는 가장 짧은 간격은 0.1초예요.
FPS: 뽑아 둔 장면을 1초에 몇 장씩 넘길지
FPS는 캡처할 때가 아니라 재생할 때 쓰는 값입니다. 장수는 그대로 두고 넘기는 속도만 바꿔요. 저도 처음에는 FPS를 낮추면 파일이 작아질 줄 알았는데, 이 변환기에서는 그렇지 않습니다. 아래 두 개가 그 증거예요.
둘 다 45장이고 용량도 똑같이 14MB입니다. 왼쪽은 느린 화면, 오른쪽은 2배속이 됐을 뿐이에요.
둘을 같이 봐야 하는 이유: 재생 속도
간격과 FPS를 곱한 값이 곧 재생 배속입니다. 여기서 제일 많이 헷갈려요.
재생 배속 = 프레임 간격 × FPS
0.1초 × 10fps = 1배 (원본 속도)
0.3초 × 10fps = 3배 (예전 기본값)
0.2초 × 5fps = 1배 (원본 속도, 대신 장면이 듬성듬성)
예전 기본값은 원본보다 세 배 빠르게 돌아갔어요. 짧은 짤은 그게 오히려 재밌을 때도 있지만, 화면 녹화처럼 속도가 중요하면 곤란하죠. 그래서 지금 자동 설정은 FPS를 항상 1 ÷ 간격으로 맞춰서, 어느 단계를 골라도 원본 속도로 나와요. 간격이 0.1초면 FPS 10, 0.2초면 5인 식이에요.
직접 비교해 본 표
이 글에 쓴 GIF들은 모두 같은 4.5초 영상을 가로 900px로 변환한 파일입니다. 장수, 재생 길이, 용량을 정리하면 이렇습니다.
| 프레임 간격 | FPS | 장수 | 재생 길이 | 용량 |
|---|---|---|---|---|
| 0.1초 | 5 | 45 | 9.0초 (0.5배속) | 14.0MB |
| 0.1초 | 10 | 45 | 4.5초 (원본 속도) | 14.0MB |
| 0.1초 | 20 | 45 | 2.25초 (2배속) | 14.0MB |
| 0.2초 | 5 | 23 | 4.6초 (원본 속도) | 7.5MB |
| 0.3초 | 3 | 15 | 5.0초 (원본 속도) | 5.0MB |
| 0.5초 | 10 | 9 | 0.9초 (5배속) | 3.0MB |
| 1초 | 10 | 5 | 0.5초 (10배속) | 1.7MB |
보시다시피 용량은 FPS와 상관없이 장수를 따라갑니다. 간격을 0.1초에서 0.2초로 늘렸더니 장수도 용량도 거의 절반이 됐어요.
원본 속도를 유지한 채 간격만 늘리면 이렇게 됩니다. 장면이 점점 듬성듬성해지는 게 보여요.
출력 가로 크기
용량에 제일 크게 듣는 값이에요. 가로를 줄이면 세로도 비율대로 같이 줄어서, 픽셀 수는 제곱으로 줄어듭니다. 800px를 400px로 줄이면 픽셀은 4분의 1이에요.
지금은 화질 단계에 따라 긴 쪽이 320px(저사양)부터 900px(고사양)까지로 정해집니다. 왜 900px에서 막아 뒀는지는 따로 글을 써 뒀어요. 원본보다 크게 키우는 건 의미가 없습니다. 없던 디테일이 생기지는 않으니까요.
품질 (1~100)
숫자가 클수록 고화질이고, 지금은 화질 단계에 따라 70(저사양)부터 100(고사양)까지로 정해져요. 이 값은 GIF 인코더(gifski)에 그대로 넘어가요. 낮추면 색을 더 과감하게 줄이고 노이즈를 더 쓰는 대신 용량이 줄어듭니다.
색이 단순한 화면 녹화는 품질을 낮춰도 티가 잘 안 나는 편이고, 노을이나 피부처럼 그라데이션이 많은 영상은 금방 티가 납니다. 그래서 자동 설정도 품질보다 크기와 장수를 먼저 조절해요.
용량이 너무 클 때 줄이는 순서
- 길이부터 줄이기. 장수가 길이에 비례하니까 가장 확실합니다. 만든 GIF를 GIF 자르기에 올려서 필요한 구간만 남겨도 돼요.
- 화질 눈금을 저사양 쪽으로. 단계가 내려갈 때마다 크기와 초당 장수가 같이 줄어요. 크기는 효과가 제곱으로 들어오고, 장수가 절반이 되면 용량도 거의 절반이 됩니다.
위에서 본 것처럼 FPS만 바꿔서는 용량이 줄지 않아서, 자동 설정은 장면을 뽑는 간격과 FPS를 항상 같이 움직여요.
상황별로 고르면 좋은 단계
딱 정해진 정답은 없어서, 처음 고르기 좋은 단계만 적어 둘게요.
| 용도 | 화질 단계 | 이유 |
|---|---|---|
| 메신저로 빨리 보낼 짤 | 저사양 ~ 조금 가볍게 | 작고 빨리 만들어져요 |
| 블로그, 문서에 넣을 화면 | 균형 | 크기와 용량이 무난해요 |
| 글자가 작은 화면 녹화, 버그 리포트 | 조금 선명하게 | 글자가 읽혀야 하니까요 |
| 포트폴리오, 발표 자료 | 고사양 | 짧게 자른 뒤 고르면 좋아요 |
이 글을 처음 쓸 땐 원본 속도 기준으로 초당 10장이 최대라 “더 촘촘하게 뽑는 기능은 나중에”라고 적었는데, 지금은 고사양에서 원본 속도 그대로 초당 25장까지 뽑아요.
SNS나 메신저마다 올릴 수 있는 용량이 다르고 자주 바뀌어서, 여기에 숫자로 적어 두지는 않았습니다. 올리기 전에 해당 서비스 도움말을 한 번 확인해 주세요.
텍스트를 넣을 때
텍스트 설정에 글자를 넣고 다시 만들면, 결과 GIF 위에서 글자를 끌어서 위치를 옮길 수 있습니다. 기본값(흰 글자, 검은 배경, 투명도 0.6)이 대부분 무난해요. 글자 크기는 GIF가 작게 축소돼서 보일 때도 읽히도록 30~50px 정도를 추천합니다.
한 줄 정리
- 장수 = 길이 ÷ 간격, 재생 배속 = 간격 × FPS
- 용량을 줄이려면 길이부터 자르고, 화질 눈금을 저사양 쪽으로
- 지금 변환기는 이 값들을 영상에 맞춰 자동으로 정해요
GIF 색이 왜 원본보다 탁해지는지, 이 변환기가 왜 gifski를 쓰는지는 개발기에 정리해 두었어요.
💬 댓글
자유롭게 의견을 나눠주세요