비디오를 GIF로 — 브라우저에서 구간 자르기, FPS 조절, 업로드 없음
브라우저 안에서 비디오를 GIF로 변환하세요. 시작/종료 구간을 고르고 1–60 FPS, 크기 조절, 팔레트 색상과 디더링을 설정합니다. 파일은 업로드되지 않습니다. GIF만, 한 번에 하나.
이 로컬 비디오→GIF 도구가 실제로 하는 일
비디오 파일은 브라우저를 떠나지 않습니다
선택·드롭·붙여넣기한 비디오는 기기에서 디코딩과 인코딩을 거칩니다. 업로드도 계정도 필요 없습니다. 다만 첫 사용 시 FFmpeg.wasm 코어(약 30.6 MB)나 JavaScript 인코더 worker를 CDN에서 받아오므로 완전 오프라인은 아닙니다.
필요한 몇 초만 정확히 자르기
타임라인에서 시작·끝을 0.01초 단위로 지정하고 현재 재생 위치를 시작/끝으로 표시할 수 있습니다. 배속은 0–10배(0.25 단위)라 긴 장면을 짧은 루프로 만들 수 있습니다.
프레임 레이트와 크기 조절
프레임 레이트는 1–60(기본 12). 너비·높이에 -1을 넣으면 원본 비율을 유지하고, 한쪽만 지정하면 다른 쪽이 자동 계산됩니다. 변환 전에 최종 출력 크기가 표시됩니다.
품질 슬라이더 대신 팔레트와 디더링
색상 수는 255/128/64/32/24/16/8/4 중 선택. 디더링은 none, sierra2_4a, bayer, floyd_steinberg. 비트레이트나 압축 품질 슬라이더는 없고 목표 크기 예상도 제공하지 않습니다.
두 가지 인코더, 진행률과 중단
기본은 FFmpeg.wasm(palettegen + paletteuse) 인코딩이며 순수 JavaScript 인코더로 바꿀 수 있습니다. 변환 중 진행 바와 중지 버튼을 제공하고, 완료 후 GIF 실제 크기와 바로 다운로드를 보여줍니다.
비디오 → GIF 자주 묻는 질문
어떤 형식과 브라우저를 지원하나요?
선택기는 video/*를 받고 드래그앤드롭은 .mp4/.mov도 받습니다. 가장 빠른 경로는 MP4/MOV를 MP4Box + WebCodecs(Chrome/Edge 계열)로 처리하는 것입니다. 실패하면 video 요소 seek, 다음으로 FFmpeg.wasm 디코딩으로 자동 폴백합니다. 다른 컨테이너는 이 폴백에 의존하므로 브라우저와 코덱에 따라 결과가 다릅니다.
영상이 업로드되나요?
아니요. 영상 데이터는 탭 안에만 있습니다. 하지만 첫 사용 시 unpkg에서 FFmpeg.wasm 코어(약 30.6 MB) 또는 modern-gif worker를 가져오므로 시작하려면 네트워크가 필요하고 완전 오프라인 동작은 안 됩니다.
파일 크기나 길이 제한이 있나요?
코드에 하드 제한은 없습니다. 실제 한계는 메모리로, 프레임을 원본 RGBA로 보관해 대략 너비×높이×4바이트×프레임 수만큼 씁니다. 600×600·250프레임이면 약 343 MB입니다. 너비/높이 600 초과, 250프레임 초과 시 경고가 나오고 allocation failed는 크기·프레임 레이트·길이를 낮추라는 신호입니다.
왜 느리고 페이지가 끊기나요?
프레임 추출·리사이즈·RGBA 조립이 메인 스레드에서 돌고 기본 FFmpeg 코어는 단일 스레드(SharedArrayBuffer 미사용)입니다. 해상도와 프레임 레이트가 높을수록 심합니다. 인코딩은 worker에서 하지만 UI는 여전히 버벅일 수 있습니다. 일부 기기에서는 JS 인코더가 더 빠릅니다.
GIF 크기를 예상하거나 제한할 수 있나요?
아니요. 변환 후 실제 크기만 보여주고 사전 예상은 없습니다. 줄이려면 구간을 짧게, 프레임 레이트를 낮게, 너비/높이를 줄이고, 색상 수를 낮추거나 디더링을 바꾸세요.
출력 형식과 일괄 변환은?
움직이는 GIF만, 한 번에 하나입니다. MP4·WebP·APNG는 없고 오디오도 유지하지 않습니다. 배치 큐나 여러 파일 동시 변환은 없으며 결과는 단일 다운로드 링크와 미리보기입니다.
휴대폰·태블릿에서 쓸 수 있나요?
가능하지만 불안정합니다. 모바일은 메모리 한계가 빡빡하고 WebCodecs 지원도 들쭉날쭉해 길거나 고해상도 영상은 자주 실패합니다. 써야 한다면 짧은 구간, 작은 출력, 낮은 프레임 레이트로 하고 데스크톱 Chrome/Edge가 가장 안정적입니다.

