FFmpeg로 GIF 파일을 만드는 방법은?
_____Q1: FFmpeg로 동영상에서 GIF를 만드는 기본 명령어는 무엇인가요?
A1:
```bash
ffmpeg -i input.mp4 output.gif
```
기본적으로 입력 동영상(input.mp4)을 바로 GIF로 변환합니다. 하지만 품질 및 파일 크기가 크고 최적화가 필요할 수 있습니다.
---
Q2: GIF를 고품질로 만들려면 어떻게 해야 하나요?
A2:
보통 두 단계로 만듭니다. 먼저 팔레트를 생성하고, 그 팔레트를 이용해 변환하면 색상 표현이 좋아집니다.
1단계 - 팔레트 생성:
```bash
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,palettegen" palette.png
```
2단계 - 팔레트 적용 변환:
```bash
ffmpeg -i input.mp4 -i palette.png -lavfi "fps=10,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
```
---
Q3: FPS(frames per second)와 해상도 조절하는 방법은?
A3:
`fps=10` 부분에서 초당 프레임 수를 지정하고, `scale=320:-1`에서 너비를 320픽셀로 줄입니다. `-1`은 자동으로 높이 비율을 맞춤. 예를 들어,
```bash
-vf "fps=15,scale=480:-1:flags=lanczos"
```
라고 하면 15fps, 가로 480픽셀로 조절됨.
---
Q4: GIF 크기가 너무 커서 조절하고 싶어요.
A4:
- FPS를 낮춰서 부드러운 정도를 조절합니다(예: 10fps → 5fps).
- 해상도를 낮춥니다(예: scale=320:-1 → scale=240:-1).
- GIF를 제작할 영상 구간을 짧게 자릅니다(예: `-ss`, `-t` 옵션).
예시:
```bash
ffmpeg -ss 00:00:05 -t 3 -i input.mp4 -vf "fps=8,scale=240:-1:flags=lanczos" -loop 0 output.gif
```
Q5: GIF 반복(loop) 설정은 어떻게 하나요?
A5:
`-loop 0` 옵션을 추가하면 무한 반복 GIF가 만들어집니다.
예:
```bash
ffmpeg -i input.mp4 -loop 0 output.gif
```
---
Q6: 특정 구간만 GIF로 만들고 싶어요.
A6:
`-ss` (시작 시간), `-t` (길이) 옵션을 사용합니다. 예:
```bash
ffmpeg -ss 00:00:10 -t 5 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
```
위 명령은 10초부터 5초간 GIF를 생성합니다.
---
Q7: 팔레트 없이 바로 만들면 안 될까요?
A7:
가능은 하지만 색상 품질과 최적화 측면에서 팔레트를 쓰는 것이 좋습니다. 팔레트 없이 변환하면 색상 왜곡과 파일 크기가 큰 단점이 있습니다.
---
Q8: 여러 이미지 시퀀스를 GIF로 만들고 싶어요.
A8:
이미지 파일 이름이 연속적이면 아래처럼 사용합니다.
```bash
ffmpeg -framerate 10 -i frame%03d.png -vf "scale=320:-1:flags=lanczos" output.gif
```
여기서 `frame001.png, frame002.png, ...` 형식이어야 합니다.
---
요약
최적의 GIF 변환은 팔레트 생성 후 팔레트 적용 변환이며, FPS와 해상도 조절, 구간 자르기, 무한 반복 설정 등을 적절히 조합하여 사용합니다.
---
필요시 예시 스크립트:
```bash
ffmpeg -ss 00:00:00 -t 5 -i input.mp4 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" palette.png
ffmpeg -ss 00:00:00 -t 5 -i input.mp4 -i palette.png -lavfi "fps=15,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" -loop 0 output.gif
```
위 명령어는 첫 5초를 15fps, 320px 너비로 무한 반복하는 고품질 GIF를 만듭니다.
작성자:
박하린 [비회원]
| 작성일자: 1년 전
2024-09-10 19:04:37
조회수: 169 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 169 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.