VideoKit

GIF 압축

용량이 너무 큰 애니메이션 GIF를 가볍게 만들어 이모티콘, 커뮤니티 첨부, 이메일, 웹페이지 로딩의 용량 제한을 맞춥니다

세 가지 축을 함께 조절

화면 크기, 프레임 수, 색상 품질을 각각 조절할 수 있으며 크기만 절반으로 줄여도 용량은 보통 4분의 1이 됩니다

솎아내도 재생 속도는 그대로

버린 프레임의 표시 시간은 옆 프레임에 넘어가므로 전체 길이와 리듬이 유지되고 빨리감기처럼 되지 않습니다

로컬 처리, 업로드 불필요

디코딩부터 재인코딩까지 전부 브라우저에서 처리되므로 파일이 기기를 벗어나지 않고 용량·횟수 제한도 없습니다

사용 시나리오

  • WeChat 커스텀 이모티콘은 GIF를 1MB, 240×240으로 제한하는데, 초과한 움짤도 압축하면 바로 추가할 수 있습니다
  • 커뮤니티와 게시판은 첨부·이미지 용량에 상한이 있어 수십 MB짜리 화면 녹화 GIF는 아예 올라가지 않습니다
  • 문서, README, 제품 설명에 넣는 사용 시연 GIF는 압축하면 페이지가 빨리 열려 읽는 사람을 기다리게 하지 않습니다
  • 이메일 첨부는 보통 10~25MB로 제한되므로 긴 움짤은 보내기 전에 용량을 줄여야 합니다

GIF 용량이 큰 이유와 실제로 줄일 수 있는 부분

GIF는 1987년에 만들어진 형식으로 한 프레임에 최대 256색만 쓸 수 있고, 최신 영상 같은 프레임 간 압축도 없습니다. 그래서 같은 화면이라도 GIF로 저장하면 MP4보다 열 배 넘게 커지기 일쑤입니다. 줄일 수 있는 곳은 화면 크기, 프레임 수, 프레임당 색상 수 세 가지뿐입니다.

이 도구는 gifuct-js로 GIF를 프레임 단위로 디코딩하고(GIF의 disposal 규칙에 따라 각 프레임을 완전한 화면으로 복원합니다), gif.js로 팔레트를 다시 양자화해 인코딩합니다. 세 가지 설정 중 크기의 효과가 가장 큽니다. 가로세로를 절반으로 줄이면 픽셀 수는 4분의 1이 됩니다. 그다음이 프레임 솎기이고, 색상 품질은 절감 폭이 상대적으로 작지만 크기를 희생하고 싶지 않을 때 유용합니다. 모든 연산은 브라우저에서 로컬로 이루어집니다.

관련 GIF 도구

아무리 해도 원하는 용량에 못 미친다면 형식을 바꾸는 것도 방법입니다. 영상으로 만들면 용량이 한 자릿수 단위로 작아지므로 GIF를 영상으로 변환을 사용하세요. 반대로 영상에서 일부를 잘라 움짤로 만들려면 영상을 GIF로 변환, 여러 사진으로 움짤을 만들려면 이미지를 GIF로 변환을 쓴 뒤 이 페이지로 돌아와 압축하면 됩니다.

자주 묻는 질문

GIF는 어느 정도까지 줄일 수 있나요?

원본과 설정에 따라 다릅니다. 크기가 가장 효과적입니다. 가로세로를 절반으로 줄이면 픽셀 수는 4분의 1이 되고, 용량은 대개 원본의 25%~35% 수준으로 떨어집니다. 여기에 프레임을 절반 솎아내면 대부분의 GIF가 원본의 15% 안팎이 됩니다. 크기와 프레임은 그대로 두고 색상 품질만 낮추면 절감 폭은 보통 10%~30%입니다.

프레임을 솎으면 애니메이션이 빨라지나요?

아닙니다. 솎아낸 프레임의 표시 시간은 바로 앞에 남긴 프레임에 더해지므로 전체 길이와 재생 속도는 그대로 유지되고, 부드러움만 줄어듭니다. 원래 프레임 수가 적은 GIF라면 모든 프레임을 유지하는 편이 좋습니다.

GIF를 이모티콘 용량 제한에 맞추려면?

예를 들어 WeChat 커스텀 이모티콘은 파일당 1MB, 240×240 이하로 제한됩니다. 먼저 가로세로가 240 안에 들어오는 크기 단계를 고르고, 프레임을 절반 솎은 뒤 색상 품질은 「균형」으로 두고 압축한 다음 결과 영역의 용량을 확인하세요. 그래도 넘으면 색상 품질을 「최소 용량」으로 바꾸거나 크기를 더 낮추면 됩니다.

압축했는데 왜 용량이 더 커졌나요?

일부 GIF는 원래부터 매우 공격적으로 최적화되어 있어(각 프레임이 아주 작은 변경 영역만 저장) 다시 인코딩하면 모든 프레임이 완전한 이미지로 기록되면서 그 최적화가 상쇄됩니다. 이럴 때는 화면 크기를 50% 이하로 낮추거나 프레임을 절반 솎아내면 용량이 다시 줄어듭니다.

GIF 파일이 서버에 업로드되나요?

아닙니다. 디코딩, 크기 조정, 재인코딩이 모두 브라우저에서 로컬로 실행됩니다. GIF는 기기 밖으로 나가지 않으며 어디에도 업로드되지 않습니다.

큰 GIF를 압축하면 브라우저가 느려지나요?

GIF 압축은 모든 프레임을 하나씩 디코딩한 뒤 다시 인코딩하기 때문에 프레임이 많을수록 오래 걸리고, 수백 프레임짜리 긴 GIF는 휴대폰에서 꽤 기다려야 할 수 있습니다. 용량을 크게 줄이는 것이 목적이라면 화면 크기를 50%로 낮추는 것만으로 처리 시간도 크게 짧아집니다.