웹사이트, 커뮤니티, 문서 등에 움직이는 이미지(움짤)를 넣을 때 가장 친숙하고 널리 쓰이는 포맷은 단연 GIF입니다.
윈도우의 WSL(Windows Subsystem for Linux) 환경을 활용하면, 무거운 인코딩 프로그램 없이 명령어 한 줄로 원본 영상을 원하는 비율로 크롭하고 용량까지 1MB 미만으로 가볍게 압축할 수 있습니다.
가장 대중적인 GIF로 변환하는 방법을 중심으로 알아보고, 용량을 극적으로 줄여주는 차세대 포맷인 WebP 변환법과 이를 편리하게 쓸 수 있는 윈도우 배치 파일(.bat) 제작법까지 함께 정리합니다.
1. 사전 준비: WSL에 FFmpeg 설치하기
WSL(Ubuntu 등) 터미널을 열고 아래 명령어를 입력해 FFmpeg를 최신 상태로 설치합니다.
sudo apt update && sudo apt install -y ffmpeg(설치 후 아래와 같이 ffmpeg -version을 입력해 정상 설치되었는지 확인합니다.)

2. 실전 FFmpeg GIF 변환 명령어 (기본)
5초짜리 영상을 정확히 800×600 크기로 꽉 차게 잘라내고(Crop), 용량을 최대한 다이어트하여 GIF로 만드는 명령어입니다. GIF는 파일 특성상 용량이 커지기 쉽기 때문에 색상 수를 적절히 제한하는 옵션이 포함되어 있습니다.
ffmpeg -ss 00:00:00 -i input.mp4 -t 5 -vf "fps=8,scale=800:600:force_original_aspect_ratio=increase,crop=800:600:(in_w-out_w)/2-55:in_h,split[s0][s1];[s0]palettegen=max_colors=128[p];[s1][p]paletteuse=dither=bayer:bayer_scale=3" -loop 0 output.gif핵심 옵션 설명
이 명령어의 세부 옵션을 알면 본인의 영상에 맞게 커스텀할 수 있습니다.
-ss 00:00:00 -t 5: 시:분:초(1초미만단위는 소숫점으로 제어 가능)이며, 영상의 처음(0초)부터 딱 5초 동안만 잘라냅니다.fps=8: 초당 프레임 수를 8로 조절합니다. 용량을 아끼기 위한 핵심 구간입니다.scale=800:600:force_original_aspect_ratio=increase: 원본 비율을 유지하면서, 가로/세로 중 800×600 화면에 검은 여백이 생기지 않도록 꽉 차게 확대합니다.crop=800:600:(in_w-out_w)/2-55:in_h:- 꽉 차게 확대된 영상에서 정확히 800×600 크기로 화면을 잘라냅니다.
- 기본은 정중앙 기준이지만, 뒤에
-55를 붙여 화면 중심을 살짝 왼쪽으로 이동시켰습니다. (원하는 구도에 따라 숫자를 조절하거나, 아예 맨 왼쪽을 잡으려면0을 넣으면 됩니다.)
max_colors=128: GIF가 사용할 최대 색상 수를 128개로 제한하여 화질 저하를 최소화하면서 용량을 확보합니다.-loop 0: 무한 반복 재생되도록 합니다.
3. 추가 팁: 압축률을 극대화하는 WebP 변환 명령어
만약 GIF로 변환했는데 움직임이나 색상이 복잡해서 목표 용량(예: 1MB 미만)을 맞추기 어렵다면 WebP 포맷을 사용하는 것이 좋습니다. WebP는 압축 효율이 압도적으로 좋아 동일한 해상도에서도 용량을 훨씬 더 줄일 수 있습니다.
ffmpeg -ss 00:00:00 -i input.mp4 -t 5 -vf "fps=8,scale=800:600:force_original_aspect_ratio=increase,crop=800:600:(in_w-out_w)/2-55:in_h" -vcodec libwebp -lossless 0 -q:v 25 -compression_level 6 -loop 0 output.webp-vcodec libwebp -lossless 0 -q:v 25: WebP 손실 압축 모드를 사용하며, 품질을 25% 수준으로 세팅합니다. WebP는 품질을 이 정도로 낮춰도 화면상으로는 충분히 깔끔한 화질을 유지합니다.-compression_level 6: 인코딩 속도를 조금 양보하는 대신 압축률을 극대화하여 용량을 쥐어짜 냅니다.
4. 윈도우에서 클릭 한 번으로 실행하기 (.bat 배치 파일)
매번 WSL 터미널을 켜고 긴 명령어를 입력하기 번거롭다면, 윈도우 바탕화면에서 더블 클릭과 파일명 입력만으로 WSL 내의 FFmpeg를 호출하는 배치 파일(*.bat)을 만들어 사용할 수 있습니다.
메모장을 열고 아래 코드를 복사한 뒤, 파일 저장 시 이름을 gif_maker.bat으로 지정하고 인코딩을 ANSI 또는 UTF-8로 선택하여 저장하세요. (기본 GIF 변환 기준 스크립트입니다.)
@echo off
set /p filename="변환할 MP4 파일명을 입력하세요 (확장자 제외): "
echo WSL FFmpeg를 활용해 GIF 변환을 시작합니다...
:: WSL을 호출하여 해당 폴더의 mp4를 gif로 변환하는 명령어
wsl ffmpeg -ss 00:00:00 -i "%filename%.mp4" -t 5 -vf "fps=8,scale=800:600:force_original_aspect_ratio=increase,crop=800:600:(in_w-out_w)/2-55:in_h,split[s0][s1];[s0]palettegen=max_colors=128[p];[s1][p]paletteuse=dither=bayer:bayer_scale=3" -loop 0 "%filename%.gif"
echo 변환이 완료되었습니다!
pause(만약 WebP 변환 배치 파일이 필요하다면 명령어 부분만 3번 항목의 WebP 버전 내용으로 교체하면 됩니다.)
사용 방법
- 변환하려는
영상.mp4파일이 있는 폴더로 위에서 만든gif_maker.bat파일을 옮깁니다. - 배치 파일을 더블 클릭해 실행합니다.
- 콘솔 창이 뜨면 확장자를 제외한 파일명만 입력하고 엔터를 누르면 같은 폴더에 결과물이 생성됩니다.
5. 목표 용량 맞춤 조절 팁
영상의 프레임 변화나 색상 디테일에 따라 결과물 용량이 다르게 나올 수 있습니다. 그럴 때는 아래 옵션을 미세 조정하여 원하는 용량을 맞출 수 있습니다.
- 용량을 더 줄여야 할 때: * GIF의 경우
max_colors=128부분을64또는32로 더 낮추거나,fps=6정도로 프레임을 한 단계 더 낮춥니다.- WebP의 경우 화질 옵션인
-q:v 25를20또는15로 낮춰 조절합니다.
- WebP의 경우 화질 옵션인
- 용량에 여유가 있어 화질을 높이고 싶을 때: * GIF의 경우 프레임을
fps=10으로 올리거나max_colors=256으로 색상 제한을 풀어줍니다.- WebP의 경우
-q:v 35이상으로 올려 더 선명한 결과물을 만들 수 있습니다.
- WebP의 경우