Video to GIF

Video to GIF - 온라인 애니메이션 GIF 생성기 — 동영상 클립을 원하는 프레임 레이트, 폭, 팔레트 품질의 반복 재생 애니메이션 GIF로 바꾸세요. GIF는 거의 모든 기기와 채팅 플랫폼이 이해하는 오래된 개방 형식입니다. 모든 처리는 브라우저에서 로컬로 이루어지며 파일은 결코 서버로 업로드되지 않습니다.
지원 입력: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG 및 기타 흔한 동영상 형식. 모든 것이 브라우저에서 로컬로 변환되며 파일은 결코 서버로 업로드되지 않습니다.
첫 사용 시 약 30MB의 동영상 처리 엔진이 현재 브라우저에 로드됩니다. 이후에는 캐시되어 재사용되니 조금만 기다려 주세요.
🎥
클릭해서 선택하거나 동영상 파일을 끌어다 놓으세요
WebM, OGV, MKV, AVI, GIF 등 흔한 형식 지원
프레임 레이트: 높을수록 부드럽지만 파일이 커짐
최대 폭: 종횡비를 유지하며 자동 축소됨
팔레트 색 수: 색이 적을수록 파일 작아짐, 약간의 품질 손실
애니메이션 GIF 변환: 선택한 프레임 레이트로 프레임을 추출하고 최대 폭으로 축소하며 반복 재생용 최적 팔레트를 만듭니다. 오디오 트랙은(있다면) 버려집니다.
GIF는 왜 이렇게 클까? 팔레트, 디더링, 그리고 1987년 형식

GIF(Graphics Interchange Format, 1987)는 작은 애니메이션 보너스가 붙은 정지 이미지 형식으로 설계되었으며 그 흔적이 남아 있습니다. 이 페이지의 모든 것을 이끄는 두 속성: 모든 프레임은 저장된 팔레트에서 고른 256색으로 제한되고 프레임은 LZW — zip 시대의 범용 바이트 압축기 — 로 압축되며 LZW는 동영상이 저장되고 있다는 것을 전혀 모릅니다. 모션 보상도, 실제 영상 코덱 같은 "이 프레임은 대부분 이전 프레임" 연산도 없습니다. 각 프레임은 본질적으로 개별적으로 압축된 그림입니다. 팔레트를 이해하는 것이 작고 예쁜 GIF를 만드는 열쇠입니다.

나머지를 지탱하는 다섯 사실:
• 각 프레임은 팔레트에서 최대 256색(28)만 담습니다. 트루컬러 영상은 양자화되어야 합니다
• 디더링은 이웃 팔레트 항목의 점을 흩뿌려 없는 색을 속입니다 — 파일은 커지고 그라디언트는 부드러워집니다
• 프레임 타이밍은 10 ms 단위로 저장됩니다: 10 fps → delay 10 (100 ms). 실질적 바닥은 delay 2 (20 ms = 50 fps)
• 프레임은 독립적으로 LZW 압축됩니다 — 프레임 간 압축이 없는 것이 크기의 1급 킬러입니다
• 색이 적고 프레임이 적고 크기가 작을수록: 각 손잡이가 LZW 입력을 줄이고 효과는 곱해집니다
256색 팔레트와 밴딩

트루컬러 영상 픽셀은 24비트(1,670만 가지)가 필요하지만 GIF 픽셀은 최대 256색 테이블의 8비트 인덱스입니다. 따라서 영상→GIF 변환은 팔레트 양자화를 돌립니다: 내용을 가장 잘 나타내는 256색을 고르고 모든 픽셀을 가장 가까운 것에 붙입니다. 그라디언트가 대가를 치릅니다 — 살짝 다른 파랑 4,000개가 필요한 하늘이 30개를 받고 매끄러운 경사가 밴딩이라 불리는 보이는 줄무늬로 무너집니다. 고대비 평면 그래픽(로고, 게임 스프라이트, 차트)은 거의 티 안 나고 사진과 영상이 가장 크게 맞습니다. 변환기의 팔레트 품질이 출력 품질의 큰 부분입니다.

디더링: 부드러움을 위해 노이즈를 거래

디더링은 밴딩의 고전적 해결책입니다: 각 픽셀을 가장 가까운 팔레트 색에 붙이는 대신 두 가장 가까운 색의 혼합을 흩뿌려 작은 영역의 평균이 원래 톤에 맞게 합니다. 그라디언트가 극적으로 부드러워집니다 — 줄무늬가 녹아 눈이 정상 시거리에서 섞어 버리는 가는 노이즈가 됩니다. 대가는 파일 크기입니다: 노이즈는 고주파 디테일이며 LZW는 흩어진 점보다 규칙적 줄무늬를 훨씬 잘 압축합니다. 이것이 이 페이지가 보여주는 근본적 GIF 트레이드오프입니다. 작은 파일과 밴딩을 원하면 디더링을 끄고, 부드러운 그라디언트를 크기 프리미엄으로 원하면 켜세요.

프레임 타이밍: 20 ms 바닥

GIF는 프레임 사이 지연을 1/100초 단위로 저장합니다. 10 fps는 delay 10(프레임당 100 ms), 20 fps는 delay 5(50 ms). 가장 작은 유용한 값은 2(20 ms, 즉 50 fps)이며 실전에서 대부분 브라우저는 그 아래를 100 ms로 클램프합니다 — 60 fps를 요청하면 조용히 더 느린 재생이 나옵니다. 바닥 위에서는 fps가 오를 때마다 프레임 수가 곱해집니다: 같은 클립에서 15 fps → 50 fps는 프레임이 세 배 이상이며 GIF 크기는 프레임 수에 거의 선형으로 늘어납니다. 10초 클립은 15 fps에서 150프레임, 50 fps에서는 500프레임입니다.

GIF가 실제 영상보다 부풀어 오르는 이유

현대 영상 코덱은 비트의 대부분을 프레임 사이의 변화 묘사에 씁니다 — 고정 카메라면 이후 프레임은 거의 공짜입니다. GIF의 LZW는 모든 프레임을 새 그림으로 봅니다(유일한 프레임 간 트릭은 이전 프레임과 동일한 픽셀을 건너뛰는 투명 플래그이며 진짜 모션 보상보다 훨씬 덜 돕습니다). 경험칙: 같은 클립에서 GIF는 같은 해상도의 잘 인코딩된 WebM보다 여러 배 클 것으로 예상하세요. 목적지가 실제 영상을 받는다면 그쪽을 선호하세요. GIF는 보편성과 자동 재생/반복 동작이 중요한 곳에서만 이깁니다.

흔한 오해
  • "GIF는 압축되니 영상에 효율적이다." LZW는 모션 모델 없는 1987년의 바이트 수준 압축기입니다. 움직이는 영상에 대해서는 웹에서 가장 비효율적인 널리 쓰이는 형식입니다.
  • "원본이 60 fps니 GIF도 그래야 한다." 20 ms 지연 바닥이 GIF를 50 fps로 제한하고 브라우저는 바닥 이하를 위로 클램프합니다. 프레임 단위 충실도는 GIF가 줄 수 있는 것이 아닙니다.
  • "디더링은 꺼야 할 잡음이다." 그것은 의도된 품질/크기 트레이드입니다. 끄면 밴딩이 있는 작은 파일, 켜면 바이트를 담는 부드러운 그라디언트.
  • "색이 적으면 항상 끔찍해 보인다." 평면 그래픽과 고대비 애니메이션은 64색으로도 256색과 똑같아 보일 수 있고 파일은 더 작아집니다.

관련 도구: 실제 압축이 있는 트루컬러 애니메이션은 Video → WebP/APNG, 반대 방향(팔레트→트루컬러)은 GIF → Video, 같은 클립의 실제 영상은 Video → WebM, 변환 전 원본 다듬기는 Video Cutter.