동영상을 GIF로 바꾸면 용량이 커지는 이유: fps·크기 조절의 원리

애니메이션 GIF를 동영상으로 바꾸면 용량이 확 줄어든다는 이야기는 한 번쯤 들어보셨을 겁니다. 그런데 정반대 방향, 즉 이미 잘 압축된 동영상 파일을 GIF로 만들면 어떤 일이 벌어질까요. 신기하게도 결과는 정반대입니다. 화질은 오히려 떨어지는데 용량은 더 커지는 경우가 흔합니다.
이 현상은 변환이 잘못돼서 생기는 문제가 아닙니다. GIF라는 파일 형식 자체가 가진 구조적인 한계 때문에 생기는, 예측 가능한 결과입니다. 동영상을 GIF로 만드는 도구가 fps(초당 프레임 수)와 가로 크기를 조절하는 옵션을 따로 두는 이유도 바로 이 한계와 맞닿아 있습니다.
요약 ① GIF는 동영상 코덱과 달리 프레임 사이의 움직임을 예측하지 않고, 색상표(팔레트)를 입힌 정지 이미지를 그대로 이어붙이는 방식입니다. ② GIF 한 프레임에는 최대 256색까지만 담을 수 있어, 이미 수백만 색을 쓰던 동영상보다 색 표현력이 뒤로 밀립니다. ③ fps와 가로 크기를 줄이는 옵션은 이 구조적 손실을 감당 가능한 수준으로 조절하는 장치입니다.
이미 압축된 동영상인데 GIF가 더 커지는 이유
MP4 같은 동영상 파일은 프레임을 하나하나 통째로 저장하지 않습니다. 앞 프레임과 비교해 바뀐 부분만 기록하는 방식(움직임 예측)으로 압축하기 때문에, 화면이 크게 안 바뀌는 구간에서는 데이터가 아주 작아집니다.
반면 GIF는 그런 예측 압축이 없습니다. 프레임마다 팔레트를 입힌 정지 이미지를 만들고, 이걸 압축해서 순서대로 이어붙이는 구조입니다. 즉 화면이 거의 그대로인 구간에서도 매 프레임을 각각 다시 저장해야 합니다. 이미 효율적으로 압축돼 있던 동영상을 이 구조로 다시 풀어서 담다 보니, 오히려 파일이 불어나는 경우가 자주 생깁니다.
256색 팔레트, 화질이 떨어지는 진짜 이유
GIF 형식은 한 프레임에 쓸 수 있는 색이 최대 256가지로 정해져 있습니다. 원본 동영상이 수백만 가지 색을 표현하고 있었더라도, GIF로 바뀌는 순간 그 색들은 256개짜리 색상표 안으로 욱여넣어집니다.
그래서 하늘이나 피부처럼 색이 미세하게 이어지는 구간에서는 경계선이 뚝뚝 끊기는 얼룩(밴딩) 현상이 두드러집니다. 색상표를 그 영상 클립에 맞게 최적으로 새로 짜는 과정(팔레트 생성)을 거치면 이 얼룩을 어느 정도 줄일 수는 있지만, 256색이라는 한계 자체를 없애지는 못합니다.
fps와 크기를 낮추는 게 실제로 줄이는 것
GIF가 저장하는 프레임 하나하나가 곧 용량입니다. 그래서 초당 프레임 수(fps)를 낮추면 저장해야 할 프레임 개수 자체가 줄어들어 용량이 작아집니다. 다만 그만큼 움직임은 뚝뚝 끊겨 보이게 됩니다. 원본 동영상이 초당 30장을 보여주던 걸 12장으로 줄이면, 용량은 줄지만 그만큼 부드러움을 내준 것입니다.
가로 크기(해상도)도 마찬가지입니다. 픽셀 수가 줄면 프레임 하나의 데이터양이 줄어드니 전체 용량도 함께 줄어듭니다. 결국 fps와 크기는 "화질·부드러움을 얼마나 포기하고 용량을 얼마나 줄일 것인가"를 사람이 직접 정하는 손잡이입니다. 이 손잡이를 매번 손으로 계산해서 맞추는 건 번거로운 일입니다.
동영상의 구간·fps·가로 크기를 정해 GIF로 변환합니다. 파일은 서버로 전송되지 않고 브라우저 안에서만 처리됩니다.

도구가 이 트레이드오프를 처리하는 방식
동영상 → GIF 변환 도구는 동영상 파일을 올리면 구간(시작 지점·길이), fps, 가로 크기를 직접 정할 수 있게 해줍니다. fps는 5~24 사이에서, 가로 크기는 240px부터 640px까지 중에서 고르는 방식입니다. 변환 버튼을 누르면 원본 프레임을 다시 디코딩해서 지정한 fps로 추출하고, 그 클립에 맞는 팔레트를 새로 만들어 입히는 과정을 거쳐 실제로 GIF를 새로 만들어냅니다. 스트림을 그대로 복사하는 게 아니라 매번 다시 인코딩하는 방식입니다.
변환이 끝나면 결과 화면에 GIF 용량과 함께 지금 적용된 fps·가로 크기 설정이 함께 표시됩니다. 같은 영상이라도 fps를 낮추거나 크기를 줄이면 이 용량 숫자가 바로 줄어드는 걸 눈으로 확인할 수 있습니다. 이 모든 처리는 브라우저 안에서만 이뤄지며 파일을 서버로 올리지 않습니다.
정리
- GIF는 동영상 코덱과 달리 움직임을 예측해 압축하지 않고 프레임마다 정지 이미지를 이어붙이는 구조라, 이미 압축된 동영상을 GIF로 바꾸면 오히려 용량이 커질 수 있습니다.
- GIF 한 프레임은 최대 256색까지만 담을 수 있어 원본 동영상보다 색 표현력이 줄어들고, 색이 미세하게 이어지는 구간에서 얼룩(밴딩)이 생기기 쉽습니다.
- 팔레트를 클립에 맞게 새로 짜는 과정으로 얼룩을 줄일 수는 있지만 256색이라는 한계 자체는 없어지지 않습니다.
- fps를 낮추면 저장할 프레임 수가 줄어 용량이 작아지지만 그만큼 움직임은 끊겨 보입니다.
- 가로 크기를 줄이는 것도 픽셀 수를 줄여 용량을 낮추는 같은 원리이며, fps·크기는 결국 화질과 용량 사이에서 사람이 직접 정하는 조절 장치입니다.
동영상의 구간·fps·가로 크기를 정해 GIF로 변환합니다. 파일은 서버로 전송되지 않고 브라우저 안에서만 처리됩니다.
자주 묻는 질문
GIF로 바꿨더니 원본 동영상보다 용량이 더 커졌어요. 잘못된 건가요?
잘못된 게 아닙니다. 동영상은 앞 프레임과 달라진 부분만 기록하는 압축 방식을 쓰지만, GIF는 그런 예측 압축 없이 프레임마다 색상표를 입힌 정지 이미지를 저장합니다. 화면 변화가 적은 구간에서도 매 프레임을 각각 저장해야 하므로, 짧은 클립이라도 GIF 쪽 용량이 더 커지는 경우가 흔합니다.
fps를 낮추면 GIF가 뚝뚝 끊겨 보이는 이유는 무엇인가요?
fps는 초당 저장되는 프레임 개수입니다. 이 값을 낮추면 저장할 프레임 수 자체가 줄어들어 용량은 작아지지만, 그만큼 화면 사이의 움직임 간격이 벌어지므로 눈에는 동작이 매끄럽지 않고 끊기는 것처럼 보입니다. 용량과 부드러움을 맞바꾸는 관계입니다.
가로 크기(해상도)를 줄이면 화질도 같이 나빠지나요?
가로 크기를 줄이면 프레임 하나에 담기는 픽셀 수 자체가 줄어들어 세부 표현이 거칠어질 수 있습니다. 다만 용량에 미치는 영향은 확실합니다. 픽셀 수가 줄어드는 만큼 저장해야 할 데이터양도 함께 줄어들기 때문에, 용량을 낮추고 싶을 때 가장 먼저 조정해볼 만한 값입니다.
화질을 최대한 유지하면서 용량도 줄이는 방법이 있나요?
GIF 자체가 프레임당 256색이라는 한계를 갖고 있어서, 이 한계를 넘어서는 방법은 없습니다. 그 클립에 맞는 팔레트를 새로 만들어 색이 뭉개지는 정도를 줄일 수는 있지만, fps와 크기를 낮추지 않고 화질만 무한히 끌어올릴 수는 없습니다. 여러 조합으로 값을 바꿔보면서 용량과 화질이 모두 받아들일 만한 지점을 직접 찾는 편이 정확합니다.
