mp4를 webp로 변환 (ft. ffmpeg)
MP4 영상을 가벼운 WebP(움짤)로 변환하기
블로그에 동영상을 직접 올리면 플레이어를 눌러야 하고, GIF(움짤)로 올리자니 용량은 큰데 화질이 너무 구리다. 이럴 때 정답은 WebP다. GIF보다 용량은 훨씬 작으면서 화질은 압도적으로 좋다.
FFmpeg를 이용해 터미널에서 간단하게 변환하는 명령어를 기록해 둔다.
1. FFmpeg 설치
아직 없다면 먼저 설치한다. (윈도우는 scoop install ffmpeg 또는 winget install Gyan.FFmpeg, 리눅스는 apt install ffmpeg, macOS 는 brew install ffmpeg)
2. 변환 명령어
Bash
ffmpeg -i '20251009_175730.mp4' -ss 00:00:00.00 -t 5 -c:v libwebp -vf "fps=12,scale=400:-1" -lossless 0 -compression_level 4 -q:v 66 -loop 0 -an 251009_short.webp
명령어가 길어 보이지만, 옵션을 하나씩 뜯어보면 별거 없다.
3. 주요 옵션 설명
내가 주로 건드리는 옵션은 시간(-t), 사이즈(scale), 프레임(fps) 3가지다.
-
-i [파일명]: 입력할 동영상 파일. -
-ss 00:00:00.00: 시작 시간(Start Time). 영상의 맨 처음부터 따고 싶다면 생략해도 되지만, 특정 구간을 원하면 시간을 지정한다. -
-t 5: 지속 시간(Duration).-
-ss시점부터 5초 동안만 잘라서 변환한다. -
10초를 원하면
10으로 변경하면 된다.
-
-
-vf "fps=12,scale=400:-1": 비디오 필터(Video Filter). 여기가 핵심이다.-
fps=12: 초당 12프레임으로 줄인다. (원본이 3060fps라도 움짤용이면 1015 정도가 적당하다. 용량을 줄이는 일등공신) -
scale=400:-1: 가로 길이를 400px로 리사이징한다. 세로의-1은 가로 비율에 맞춰서 알아서 조절하라는 뜻이다. (블로그 본문용으로 400~600 정도가 적당함)
-
-
-q:v 66: 퀄리티 계수(0100). 높을수록 화질이 좋고 용량이 커진다. 6075 사이가 적당하다. -
-loop 0: 무한 반복 설정. (0은 무한, 1은 한 번만 재생) -
-an: Audio No. 소리를 제거한다. (움짤에 소리는 필요 없으니 용량 절약)
4. 팁
결과물 용량이 생각보다 크다면?
-
fps를 낮춘다. (12 $\rightarrow$ 10) -
scale을 줄인다. (400 $\rightarrow$ 300) -
-q:v를 낮춘다. (66 $\rightarrow$ 50)
이 명령어 하나면 무거운 GIF 대신 빠릿빠릿한 WebP로 블로그를 채울 수 있다.