영상 → GIF

너비·FPS·색상 수를 조절하고 프레임을 순차 처리합니다.

영상의 구간, 폭(320·480·640 px 또는 원본), 프레임레이트(10·15·24fps)를 고르고, 원하면 속도·반복·역재생·자르기 비율·맞출 용량까지 정하면 Nerulio가 그 프레임을 디코딩해 GIF를 만듭니다. GIF는 프레임당 최대 256색이고 프레임마다 머무는 시간을 100분의 1초 단위로 저장하므로, 용량과 부드러움은 서로 맞바꾸는 관계입니다. 폭 × 높이 × 프레임 수가 용량을 정합니다. 기본값은 480 px·15fps이고, 프레임마다 팔레트를 따로 만들며 디더링은 선택입니다.

영상을(를) 여기에 놓으세요여러 개를 한 번에 처리할 수 있습니다
업로드 없음 · 이 기기에서 처리

GIF가 담을 수 있는 것과 커지는 이유

GIF 프레임은 팔레트 번호의 격자로, LZW 압축 전에는 픽셀당 1바이트이고 색상표는 최대 256색입니다. GIF89a 규격은 이미지마다 로컬 색상표를 허용합니다. Nerulio는 각 프레임의 색으로 그 프레임만의 팔레트를 만들기 때문에, 장면이 바뀌어도 앞 장면과 색을 나눠 쓸 필요가 없습니다.

영상에는 256색보다 훨씬 많은 색이 있어서 하늘·피부·그림자 같은 부드러운 그라데이션은 띠처럼 끊어집니다. 디더링 50 %나 100 %는 플로이드-스타인버그 확산으로 반올림 오차를 퍼뜨려 띠를 고운 입자로 바꿉니다. 입자는 LZW 압축에는 잡음이라 디더링한 GIF는 더 큽니다. 색을 줄이면(128·64·32) 파일은 작아지고 띠는 심해집니다.

GIF에는 소리도, 영상 코덱 같은 움직임 압축도 없어서 모든 프레임의 모든 픽셀만큼 커집니다. 머무는 시간은 1/100초 단위라 15fps(66.7ms)는 정확히 저장할 수 없고, Nerulio는 70ms와 60ms를 번갈아 써서 평균을 맞춥니다. 속도는 머무는 시간이 아니라 뽑아낼 순간을 바꿉니다. 2배속이면 부드러움은 같고 GIF 길이가 절반입니다.

팔레트(색상표)
한 프레임이 쓸 수 있는 최대 256색. 각 픽셀은 그 안의 번호를 저장합니다.
디더링
팔레트에 없는 색을 흉내 내려고 주변 팔레트 색을 무늬처럼 섞는 것.
프레임 지연
프레임이 화면에 머무는 시간. 100분의 1초 단위로 저장됩니다.

예시: 1920 × 1080 영상 6초를 기본값으로

GIF의 기본 구간은 처음 6초입니다.

프레임 크기      480 × 270 px = 129,600 픽셀
프레임 수        6 s × 15 fps = 90 프레임
지연             70, 60, 70, 70, 60, 70 … ms   (3프레임 = 200 ms)
번호 데이터      129,600 × 90 = LZW 압축 전 1,170만 바이트
24 fps라면       144 프레임, 지연 40, 40, 50 … ms, 번호 데이터 1,870만 바이트
640 px라면       640 × 360 × 90 = 번호 데이터 2,070만 바이트

이후 LZW가 번호 데이터를 줄이는 정도는 그림에 따라 달라서, 예상 용량은 추측하지 않고 실제 클립의 프레임 3장을 인코딩해 계산합니다. 2배속이면 같은 6초가 45프레임, 3초짜리 GIF가 됩니다.

설정과 용량에 미치는 영향

설정선택지용량 영향
폭320·480·640 px 또는 원본프레임당 픽셀은 폭의 제곱으로 늘어남
프레임레이트10·15·24 fps프레임 수가 비례해 늘어남
색상 수(고급)256·128·64·32색이 적을수록 잘 압축되지만 띠가 늘어남
디더링(고급)끔·50 %·100 %그라데이션이 부드러워지고 파일이 커짐
속도0.5배·1배·2배2배면 프레임 수와 길이가 절반
자르기없음·1:1·4:5·16:9, 가운데 기준프레임당 픽셀이 줄어듦
목표 용량(MB)임의의 값크기를 재며 최대 네 번 인코딩

결과 확인

  • 실행 전에 요약에 프레임 수와, 실제로 인코딩한 프레임 3장으로 잰 예상 용량이 나옵니다.
  • 실행 후 결과 상자에 폭 × 높이, 프레임 수, 용량과, 목표가 있으면 달성 여부가 나옵니다.
  • GIF를 브라우저와 올릴 앱에서 열어 반복되는지(반복을 껐다면 한 번 재생 후 멈추는지) 확인하세요.

문제 해결

증상유력한 원인확인 방법해결
하늘과 피부에 띠가 생김부드러운 그라데이션에 프레임당 256색이 부족함프레임에서 가장 넓은 그라데이션을 보기디더링을 50 %나 100 %로 켜고 256색 유지
GIF가 너무 큼폭과 프레임 수가 곱해짐. 640 px·24fps는 480 px·15fps의 2.8배 픽셀실행 전 예상 용량 비교폭이나 fps를 낮추거나 구간을 줄이거나 자르기, 또는 목표 용량 입력
목표 용량은 맞췄는데 설정보다 품질이 나빠 보임맞추려고 먼저 색을 64(다음은 32)로, 그다음 폭과 fps를 함께 줄임결과 상자에 최종 폭과 프레임 수가 나옴목표를 키우거나 대신 구간을 줄이기
긴 클립이 느리거나, 역재생이 메모리 메시지로 멈춤모든 프레임을 디코딩·양자화·압축하며, 역재생은 끝날 때까지 모든 프레임을 들고 있음(번호 데이터 64 MB 상한)진행 표시에 전체 중 몇 번째 프레임인지 나옴구간이나 폭·fps를 줄이고, 긴 클립은 역재생 끄기
휴대폰 영상에서 디코더 오류가 남브라우저가 영상 코덱(주로 HEVC)을 디코딩하지 못함코덱 확인법은 MOV 안내 참고디코딩되는 브라우저를 쓰거나 H.264로 촬영

다른 방법

방법이럴 때 더 낫습니다
palettegen·paletteuse 필터를 쓴 FFmpeg클립 전체에 최적화한 팔레트 하나와 다섯 가지 디더링(기본 Sierra-2-4A)을 스크립트로. 명령줄 전용입니다.
GIF 대신 짧은 MP4·WebM플랫폼이 영상을 받는다면 같은 화질에 훨씬 작고 소리도 있습니다. 영상 압축 참고.
스프라이트 시트를 GIF로촬영한 영상이 아니라 도트 애니메이션 프레임일 때.

이 방법의 한계

  • 투명 GIF는 만들지 않습니다. 모든 프레임이 불투명합니다.
  • 글자·스티커 얹기는 없고, 팔레트는 클립 전체가 아니라 프레임마다 만듭니다.

버전과 출처

tests/media-browser.mjs로 Chromium 153과 Firefox 155에서 확인했습니다. 2초를 640 px·12fps로 만들면 폭 640 px의 24프레임이 나오고, 0.25 MB 목표는 측정 인코딩으로 달성했으며, 역재생·2배속·1:1 자르기 GIF는 계획한 5프레임과 정사각형 크기를 지켰고, 프레임 3장 예상치는 실제 용량과 25 % 이내였습니다. 프레임은 Mediabunny 1.58.1과 WebCodecs로 디코딩하고 gifenc 1.0.3으로 인코딩합니다. GIF의 한계는 GIF89a 규격에 따른 것입니다.

참고한 공식 문서

영상 → GIF

너비·FPS·색상 수를 조절하고 프레임을 순차 처리합니다.

사용 방법

  1. 영상을 열고 짧은 구간 선택
  2. 너비·프레임 수·색상 수 설정
  3. GIF로 저장하고 움직임·색상·용량 확인

지원 형식

MP4 / WebM / MOV → GIF — 입력·출력 지원은 브라우저에 따라 다릅니다.

이 도구로 할 수 있는 일

프레임을 하나씩 읽고 GIF 너비·FPS·색상 수·디더링을 선택합니다.

처리 방식과 검증 수준

advanced · WebCodecs sequential frames / gifenc adaptive palettes / measured size targets. 품질 검증을 진행 중입니다. Pro·Flagship 수준은 아직 입증되지 않았습니다.

저장 전에 확인하세요

빠른 자르기는 범위 안쪽 키프레임으로 줄어듭니다. 정밀 모드는 재인코딩하며 코덱 지원은 다릅니다. 가능하면 결과를 기기 내 임시 저장소에 씁니다. 호환 녹화 모드의 짧은 구간 제한은 유지됩니다.

자주 묻는 질문

처리 가능한 크기는 무엇으로 결정되나요?

기기 메모리·저장 공간·코덱 지원에 따라 달라집니다. 테스트한 사례가 모든 파일의 성공을 보장하지는 않습니다.

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

이 도구에서 연 파일은 서버에 업로드하지 않고 사용자 기기에서 처리합니다. 커뮤니티 글에 직접 첨부하는 이미지는 별도로 업로드됩니다. 일부 엔진과 모델은 외부에서 내려받으므로 IP 주소 등 연결 정보가 해당 서비스에 전달됩니다.

작업이 자동 저장되나요?

아니요. 이미지와 편집 상태는 이 탭에 있고 미디어 결과는 기기 내 임시 저장소를 사용할 수 있습니다. 언어를 바꿔도 작업은 유지되지만 새로고침, 탭 닫기, 다른 페이지로 이동하면 사라질 수 있습니다.