1987년의 형식, 아직도 어디에나
GIF는 웹보다 오래되었습니다. 1987년 컴퓨서브가 전화 접속 파일 전송용으로 설계했고, 그 한계의 거의 전부가 그 맥락에서 옵니다. 가장 중요한 것 하나를 포함해서요. GIF는 프레임당 최대 256색만 표현할 수 있습니다.
이 제약이 사진 같은 영상을 GIF로 만들면 띠가 지고 얼룩덜룩해 보이는 반면, 인터페이스 화면 녹화는 멀쩡해 보이는 이유입니다. 단색 면과 또렷한 경계는 256색 팔레트에서 살아남고, 피부톤과 그러데이션은 살아남지 못합니다. 인코더가 연속적인 범위를 정해진 몇 개의 항목으로 근사해야 하기 때문입니다.
파일이 이렇게 커지는 이유
GIF에는 이름값을 하는 프레임 간 압축이 없습니다. 현대 영상 형식은 온전한 프레임 하나를 저장한 뒤 무엇이 바뀌었는지만 기술합니다. GIF는 각 프레임을 거의 통째로 저장합니다. 그 결과 파일 크기가 프레임 수에 거의 비례하고, 5초짜리는 정말로 1초짜리의 다섯 배입니다.
| 조절 수단 | 크기에 미치는 영향 | 대가 |
|---|---|---|
| 길이 줄이기 | 비례, 길이를 반으로 하면 파일도 반으로 | 내용이 줄어듭니다. 대개 옳은 거래입니다. |
| 프레임 레이트 낮추기 | 비례, 10fps는 20fps의 절반 | 약 10fps 아래에서는 끊김이 눈에 띕니다. |
| 크기 줄이기 | 대략 넓이에 비례, 폭 절반이면 픽셀은 4분의 1 | 디테일, 특히 글자. |
| 색 수 줄이기 | 소폭 | 그러데이션에 띠가 생깁니다. |
표의 순서가 곧 시도할 순서입니다. 클립에서 1초를 잘라 내는 것은 움직임이 끊겨 보일 만큼 프레임 레이트를 낮추는 것보다 거의 언제나 대가가 적고, 둘 다 글자를 못 읽을 때까지 크기를 줄이는 것보다 부드럽습니다.
대개는 애니메이션 WebP가 더 나은 답입니다
위에서 설명한 것은 결국 1987년 형식의 사정이고, 여기에는 분명한 현대적 답이 있습니다. WebP는 애니메이션이 되고, 256색이 아니라 모든 색을 담으며, GIF가 끝내 못 했던 프레임 간 압축을 합니다. 주요 브라우저가 모두 표시합니다. Chrome 32, Firefox 65, Safari 16부터이고 사용량 기준 약 96%입니다.
차이는 미미하지 않습니다. 같은 클립을 두 형식으로 인코딩해 보니, 화면 녹화류는 GIF 242 KB 대 WebP 56 KB였고, 팔레트가 가장 불리한 그라데이션 위주는 967 KB에서 108 KB가 됐습니다. 4~9배 작으면서 띠도 생기지 않습니다. 양자화할 팔레트 자체가 없기 때문입니다.
그래서 위 도구는 WebP를 기본값으로 두고, WebP를 고르면 색상 수와 디더링 설정이 사라집니다. 둘 다 WebP에는 없는 한계를 우회하려고 존재하는 설정이기 때문입니다. 받는 쪽이 다른 것을 받지 않을 때만 GIF를 고르세요. 그것이 아직 GIF가 확실히 나은 유일한 지점입니다.
둘 다 쓰지 말아야 할 때
몇 초를 넘거나 사진 같은 내용이라면, 영상 파일이 훨씬 작고 훨씬 보기 좋습니다. 같은 클립을 MP4나 WebM으로 만들면 흔히 10분의 1 크기에 더 나은 품질이며, 두 형식 모두 브라우저에서 소리 없이 반복 재생됩니다. GIF에 남아 있던 유일한 실질적 장점이 그것이었죠.
여기 있는 두 형식 중에서 GIF가 제 몫을 하는 경우는 받는 쪽이 다른 것을 받지 않을 때뿐입니다. 그런 곳은 줄고 있지만 없지는 않습니다. 일부 오래된 게시판 소프트웨어, 일부 메일 클라이언트, 그리고 몇몇 채팅 플랫폼은 여전히 WebP 업로드를 거부합니다.
채팅 플랫폼은 사정을 더 복잡하게 만듭니다. 다수가 업로드된 GIF를 내부적으로 영상으로 변환하므로, 공들여 최적화한 파일이 도착하는 순간 재인코딩되고 당신의 최적화는 남들이 보는 것이 아니라 업로드 시간에 영향을 미칩니다.
실전 설정
- 프레임 레이트: 화면 녹화는 10~15fps, 부드러워야 하는 움직임은 15~20fps. 10 아래로 내려가면 끊김이 사람들이 알아채는 바로 그것이 됩니다.
- 폭: 표시될 곳에 맞추세요. 500px로 보여 줄 GIF가 1200px일 이유가 없습니다. 데이터만 네 배 듭니다.
- 길이: 동작 앞뒤를 잘라 내세요. 대부분의 GIF에서 가장 큰 절감은 아무 일도 일어나지 않는 양 끝 몇 초입니다.
- 반복: 같은 프레임에서 시작하고 끝나는 클립은 눈에 띄는 튐 없이 반복되며, 그것이 1초를 더 넣는 것보다 값어치가 큽니다.
모든 처리는 브라우저에서 이루어집니다. 넣은 영상은 업로드되지 않으며, 사내 도구나 고객 데이터가 보이는 화면 녹화처럼 남의 서버에 넘기고 싶지 않은 것에 중요한 점입니다. 그리고 변환 속도가 대기열이 아니라 본인 기기에 달려 있다는 뜻이기도 합니다.