AI 뮤직비디오 만들기

이미지 한 장에서 시네마틱 MV까지.
AI 도구만으로 완성하는 뮤직비디오 제작 가이드.

Midjourney Google Veo 3.1 FFmpeg Whisper
What is this?

AI가 그림을 움직여준다

정지 이미지 한 장이 8초짜리 시네마틱 영상으로 변합니다. 이걸 여러 장 만들어 음악과 합치면 MV가 완성됩니다.

이 가이드는 실제로 뮤직비디오를 만들어 본 과정을 그대로 정리한 것입니다. 코딩 없이 따라할 수 있는 기초편과, 자동화 스크립트를 활용하는 기술편을 모두 포함합니다.

Pipeline Overview

5단계 파이프라인

1

씬 기획

노래의 감정선을 분석하고, 7~10개의 장면으로 나눕니다.

2

이미지 생성

Midjourney로 각 씬에 맞는 웹툰/만화 스타일 이미지를 만듭니다.

3

애니메이션 변환

Google Veo 3.1이 정지 이미지를 8초 시네마틱 영상으로 변환합니다. 무료.

4

MV 조립

FFmpeg로 모든 클립을 합치고, 음악과 자막을 입힙니다.

5

전송 및 배포

완성된 MV를 확인하고 YouTube에 업로드합니다.

Tools & Cost

사용 도구 및 비용

도구용도비용
Midjourney씬 이미지 생성$10/월
Google Veo 3.1이미지 애니메이션무료
FFmpeg영상 편집/조립무료
Whisper가사 전사 (자막용)무료
Suno AI음악 생성 (선택)무료~$10
TIP

Midjourney 대신 무료 AI 이미지 생성 도구(Grok, Perchance 등)도 사용 가능합니다. 품질은 Midjourney가 가장 안정적입니다.

Step 1

씬 기획 — 감정선 분석

노래를 듣고 감정의 흐름을 파악합니다. 가사의 전환점마다 씬을 나누세요.

감정 구간장면 예시
인트로 / 고독새벽 창가, 빈 방, 어두운 골목
고난 / 바닥좁은 방, 공사장, 비 맞는 거리
결의 / 각성정면 포트레이트, 눈빛 클로즈업
폭발 / 행동회의실, 대치, 걸어가는 뒷모습
회상 / 감성술자리, 야경, 빗소리
관계 / 연결두 인물, 계단, 문 앞
결말 / 전진측면 프로필, 도시 전경, 일출
TIP

보통 7~10개 씬이 적당합니다. 3분짜리 곡이면 8개 씬 x 약 22초(슬로모)로 딱 맞습니다.

Step 2

이미지 생성 — Midjourney 프롬프트

각 씬에 맞는 이미지를 AI로 생성합니다. 핵심은 분위기와 조명입니다.

프롬프트 구조

[장면 묘사] + [인물 외형/복장] + [조명] + [분위기] + webtoon manhwa illustration style + cinematic composition + no text --ar 16:9 --style raw
EXAMPLE PROMPT
A man in dark navy suit with arms crossed standing in a dim office, cold determined expression, dramatic top-down lighting, dark background with floating dust particles, webtoon manhwa illustration style, cinematic composition, no text, no watermark --ar 16:9 --style raw
EXAMPLE PROMPT
A man in suit sits alone at a street food stall in the rain, soju cup in hand, phone screen glows on table, melancholic atmosphere, wet reflections on ground, warm interior light contrasts cold rainy exterior, webtoon style, no text --ar 16:9 --style raw
WARNING

이미지에 글씨, 텍스트, UI 요소가 렌더링되면 안 됩니다. 프롬프트에 반드시 "no text, no watermark"를 포함하세요.

체크리스트

Step 3

애니메이션 변환 — Google Veo 3.1

Google Vids에서 Veo 3.1의 "이미지에 애니메이션 효과 적용" 기능을 사용합니다.

수동 방법 (브라우저)

  1. Google Vids (docs.google.com/videos) 접속
  2. "새 동영상" 클릭
  3. Veo 3.1 카드 선택
  4. 모드를 "이미지에 애니메이션 효과 적용"으로 변경
  5. 이미지 업로드
  6. 영문 프롬프트 입력 (움직임 묘사 포함)
  7. "생성" 클릭 → 약 1분 대기
  8. 결과 확인 → "삽입" → 다운로드

Veo 프롬프트 작성법

Midjourney 프롬프트와 다릅니다. 움직임을 묘사해야 합니다.

VEO ANIMATION PROMPT
Cinematic close-up portrait: a man in dark navy suit with arms crossed slowly turns his head toward camera, cold determined expression, subtle breathing motion, dark background with faint particles floating, dramatic top-down lighting, webtoon manhwa illustration style.
MOTION KEYWORDS

slowly turns, slight wind blows, gently swaying, camera dollies in, particles floating, light shifts, hair moving slightly, breathing motion, rain drops falling

항목사양
출력 길이8초
해상도1280 x 720 (HD)
오디오포함 (MV에서는 제거)
비용무료
워터마크우하단 "Veo" (후처리로 제거)
Step 4

MV 조립 — FFmpeg

모든 클립을 하나로 합치고, 음악과 자막을 입힙니다.

처리 순서

원본 클립 (8초, 1280x720) → crop 워터마크 제거 (우측+하단) → slowmo MP3 길이에 맞춰 속도 조절 → scale 해상도 복원 (1280x720) → concat 전체 클립 연결 → audio MP3 음악 합성 → subtitle ASS 자막 하드번 → output 최종 MV 파일

슬로모 계산

Veo 클립은 8초입니다. 음악 길이에 맞춰 느리게 재생합니다.

slow_factor = (MP3 길이 / 클립 수) / 8 예: 178초 MP3, 8개 클립 → 178 / 8 = 22.2초/클립 → 22.2 / 8 = 2.78x 슬로모
TIP

Veo 애니메이션은 원래 느린 움직임이라 2~3배 슬로모가 오히려 시네마틱하게 보입니다.

자막 (SRT → ASS)

Whisper로 노래 가사를 전사하면 SRT 자막 파일이 나옵니다. 이걸 ASS 포맷으로 변환해서 영상에 하드번합니다.

Step 5

전송 및 배포

완성된 MV를 확인하고 배포합니다.

YOUTUBE SETTINGS

해상도: 1280x720 / 코덱: H.264 / 오디오: AAC 192kbps / AI 공시: altered content = Yes

Automation

자동화 스크립트

수동으로도 가능하지만, 9장 이상 배치 작업 시 자동화가 필수입니다.

스크립트역할
batch_veo.pyVeo 3.1 배치 생성 (CDP 자동화)
build_mv.pyFFmpeg MV 조립 (crop+slowmo+ASS+MP3)
send_mv.py텔레그램 결과 전송
batch_veo.py

Veo 3.1 배치 자동화

Chrome CDP(port 9224)를 통해 Playwright로 Google Vids를 자동 조작합니다.

JOBS 배열 구조

JOBS = [ ("파일명.jpg", "Cinematic 영문 프롬프트...", "한글 라벨"), ... ]

자동화 흐름 (1장당)

  1. Google Vids 홈 이동
  2. 새 프로젝트 생성
  3. Veo 3.1 카드 선택 (textContent: 'Veo 3.1' + '프롬프트')
  4. 모드 변경: combobox (x > 1100) → '애니메이션' option
  5. input[type="file"]로 이미지 업로드
  6. 동의 다이얼로그 자동 처리
  7. textarea (x > 600)에 프롬프트 입력
  8. "생성" 버튼 클릭 (x > 1100)
  9. 완료 대기 (최대 5분, 10초 간격 폴링)
  10. "삽입" → video src URL 추출 → CDP 다운로드
CRITICAL SELECTOR

combobox 선택 시 반드시 x > 1100 필터 적용. 메뉴바 combobox(x=47)를 잡으면 모드 전환 실패 → 전체 에러.

build_mv.py

FFmpeg MV 조립

클립 순서를 감정선에 맞춰 배치하고 하나의 MV로 조립합니다.

FFmpeg 필터 체인

# 각 클립 처리 ffmpeg -i clip.mp4 -filter_complex "[0:v]setpts=PTS*2.776, crop=iw-120:ih-50:0:0, scale=1280:720[v]" -map [v] -an -c:v libx264 # 전체 합치기 ffmpeg -f concat -i list.txt -c copy video.mp4 # 오디오 + 자막 ffmpeg -i video.mp4 -i music.mp3 -filter_complex "[0:v]ass='subtitles.ass'[v]" -map [v] -map 1:a -c:v libx264 -crf 18 -c:a aac -b:a 192k -shortest output.mp4

인코딩 설정

항목설정
비디오 코덱libx264
CRF18 (고품질)
프레임레이트24fps
오디오 코덱AAC
오디오 비트레이트192kbps
Movflags+faststart (스트리밍 최적화)
Troubleshooting

자주 발생하는 문제

문제원인해결
모드 전환 실패combobox x=47 선택x > 1100 필터
파일명 에러라벨에 / 포함특수문자 제거
동의 다이얼로그첫 사용자동 클릭
다운로드 안 됨CDP 세션setDownloadBehavior
한글 경로 에러cp949 인코딩ASCII 경로 복사
워터마크Veo 기본crop(iw-120:ih-50)
Case Study

회귀는없다 — 테마송 MV

웹소설 회귀는 없다: 바닥에서 쓴 신화의 테마송 뮤직비디오. 이 파이프라인으로 제작되었습니다.

제작 스펙

회귀는없다 v1 (Suno AI 생성)
길이2분 58초 (177.68초)
클립8개 x 22.2초 (슬로모)
자막36줄 (Whisper large 전사)
결과44.7MB, 1280x720, H.264
제작 시간이미지 준비 제외, 약 30분
Scene Map

8개 씬 구성

노래의 감정 흐름에 맞춰 클립 순서를 배치했습니다.

1
기숙사 새벽
인트로 — 고독, 시작 전 정적
2
고시원 폰
1절 — 바닥, 좁은 방의 외로움
3
슈트 정면 포트레이트
프리코러스 — 결의, 눈빛의 각성
4
회의실 주먹
코러스 — 폭발, 분노와 행동
5
포차 소주
2절 — 회상, 빗속의 고독
6
회의실 다크
코러스2 — 어둠 속 결단
7
계단 남주+소녀
브릿지 — 연결, 따뜻한 관계
8
슈트 측면 넥타이
아웃트로 — 전진, 앞을 향해
Veo Prompts Used

실제 사용된 프롬프트

SCENE 1 — 기숙사 새벽
Cinematic dawn scene: a man in dark suit stands by a window between bunk beds holding a glowing phone, sunrise slowly brightens through the window, long shadows shift across the room, contemplative expression, cool blue interior contrasts warm golden sunrise, webtoon manhwa style.
SCENE 3 — 슈트 정면
Cinematic close-up portrait: a man in a dark navy suit with arms crossed slowly turns his head toward camera, cold determined expression, subtle breathing motion, dark background with faint particles floating, dramatic top-down lighting, webtoon manhwa illustration style.
SCENE 4 — 회의실 주먹
Cinematic boardroom scene: a man slams his fists on a dark conference table, camera slowly dollies in, other men in suits react with tension, cold fluorescent lighting with blue tint, papers scatter slightly, intense dramatic atmosphere, webtoon manhwa style.
SCENE 5 — 포차 소주
Cinematic night scene: a man in suit sits alone at a street food stall in the rain, slowly picks up a soju cup, rain drops fall on the window, phone screen glows on the table, melancholic atmosphere, wet reflections on ground, warm interior light contrasts cold rainy exterior, webtoon style.
Lessons Learned

제작 후기