GENERAL

FFmpeg의 간단한 활용 팁과 사용법 정리

GENERAL
2026-02-03

나는 프리미어 프로 같은 전문적인 영상 편집 툴을 쓸 줄 모른다. 딱히 배울 생각도 없었고, 처음에는 캡컷(CapCut) 같은 GUI 기반의 툴을 내 컴퓨터에 설치하는 것조차 내키지 않았다.

물론 지금은 필요에 따라 캡컷도 아주 유용하게 잘 써먹고 있긴 하지만, 내 본업이 리눅스 환경에서 시스템을 다루는 일이다 보니 여전히 마우스로 타임라인을 쪼개는 것보다 터미널에서 명령어를 입력하는 CLI 방식이 훨씬 익숙하고 편안하다. 그래서 자연스럽게 내 손과 발이 되어준 도구가 바로 FFmpeg이다.

음원을 만들고 대충 앨범 커버 한 장 띄워서 영상화하는 기초적인 작업부터 시작해서, 지금의 쇼츠 자동화 공장까지 오게 된 FFmpeg 활용 팁들을 내 경험에 맞춰 정리해둔다.


1. 모든 것의 시작: 정지 이미지 하드코딩

가장 처음 시작했던 작업이다. 직접 만든 음원에 앨범 아트 한 장을 박아서 유튜브용 영상을 뽑아내는 일.

BASH
# 이미지 한 장과 오디오를 합쳐서 무한 반복 영상 만들기
ffmpeg -loop 1 -i cover.png -i music.mp3 -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest output.mp4
  • -loop 1: 이미지를 무한 반복시킨다.
  • -shortest: 오디오가 끝나면 영상 생성을 즉시 멈춘다.

2. 레이아웃 작업: 상단 제목과 하단 가사 박기

1번에서 만든 '정지 이미지 + 오디오' 영상은 사실 좀 밋밋하다. 그래서 나는 여기에 화면 상단에는 곡의 정보(제목-아티스트)를 고정하고, 하단에는 가사(SRT)가 나오도록 레이아웃을 잡는 작업을 꼭 거친다.

프리미어 같은 툴 없이도 명령어 한 줄이면 제목(drawtext)과 가사(subtitles)를 동시에, 그것도 아주 정확한 위치에 박아넣을 수 있다.

BASH
# 1번에서 만든 영상에 제목과 자막을 한 번에 박기
ffmpeg -i output_step1.mp4 -vf "drawtext=text='Song Title - Artist':x=(w-text_w)/2:y=50:fontcolor=white:fontsize=32:box=1:boxcolor=black@0.5, subtitles=lyrics.srt:force_style='FontSize=18,Alignment=2,MarginV=30'" final_mv.mp4
  • 상단 제목: drawtext 필터를 쓰고, x=(w-text_w)/2 공식으로 가로 중앙을 잡은 뒤 y=50으로 상단에 고정한다.
  • 하단 가사: subtitles 필터가 SRT 파일의 타임라인에 맞춰서 글자를 띄워준다. Alignment=2 옵션이 하단 중앙 정렬을 담당한다.

이렇게 하면 이미지 한 장이 가사와 제목이 흐르는 그럴싸한 '음원 영상'으로 변신한다. 굳이 마우스질하며 자막 바를 옮길 필요가 없는 게 CLI의 최대 장점이다.


3. 이미지 슬라이싱: 그리드 이미지 쪼개기 (Crop)

AI가 생성한 3x2 그리드 이미지처럼 한 장에 여러 장면이 들어있는 경우, 이걸 낱개의 9:16 이미지로 쪼개는 것도 FFmpeg의 crop 필터 하나면 끝난다. 파이썬에서 좌표값만 계산해서 던져주면 칼같이 잘라낸다. 최근 '쇼츠 팩토리' 프로젝트에서 사용했던 핵심 기법이기도 하다.

BASH
# 3x2 그리드(1024x1024)에서 첫 번째 칸만 따내기
ffmpeg -i grid_image.png -vf "crop=341:512:0:0" slice_1.png
  • crop=w:h:x:y: 원하는 가로/세로 크기랑 시작 좌표를 지정한다.
  • 쇼츠 팩토리에서는 이 방식으로 한 장의 그리드 이미지를 6개의 독립된 장면으로 분리해서 사용했다.

4. 이미지 타임라인 구성: 여러 장의 사진으로 슬라이드 쇼 만들기

슬라이드 쇼처럼 여러 장의 이미지를 순서대로 보여줘야 할 때, 별도의 영상 소스 없이 텍스트 리스트 파일(list.txt)만으로 해결한다.

BASH
# file_list.txt 예시
# file 'img01.png'
# duration 5
# file 'img02.png'
# duration 5

ffmpeg -f concat -i file_list.txt -vsync vfr -pix_fmt yuv420p output.mp4

5. 자동화 공장의 핵심: 줌팬(Zoompan)

CLI가 주는 최고의 장점은 역시 자동화다. 일회성 작업을 넘어 파이썬 스크립트와 연동할 때 FFmpeg의 진가가 드러난다. 최근 '쇼츠 팩토리' 프로젝트에서 정지된 AI 이미지에 생동감을 주기 위해 사용한 핵심 로직이다.

BASH
# 이미지를 아주 미세하게 줌인시켜서 정지 화면을 영상처럼 느껴지게 함
ffmpeg -loop 1 -i image.jpg -vf "zoompan=z='min(zoom+0.001,1.3)':d=125,scale=1080:1920" -t 5 output.mp4

마무리하며

리눅스를 다루는 사람들에게 CLI는 단순히 도구가 아니라 가장 강력한 언어다. FFmpeg은 그 언어를 미디어 영역으로 확장해주는 완벽한 도구였다. 마우스 클릭 없이 오직 코드로만 미디어를 제어하고 렌더링하는 과정은 내 업무 스타일과도 아주 잘 맞았다. 앞으로도 더 복잡한 미디어 처리 기법들을 하나씩 파헤쳐볼 생각이다.