개발 유튜브 숏츠 직접 만들기 — Veo·ffmpeg로 따라 하는 30분 실습

@JavaPark · 2026년 7월 17일 · 11 min read

개발 유튜브 숏츠 직접 만들기 실습 커버 — Veo와 ffmpeg로 따라 만들기

안녕하세요, 자바파커입니다.

지난 개발 유튜브 숏츠를 AI로 만드는 법 글에서 제작 과정을 소개했더니, "글대로 직접 따라 해보고 싶다" 는 요청이 많았습니다.

그래서 이번 글은 손을 움직이는 실습편입니다. 이 글을 순서대로 따라 하면 30분 안에 개발 숏츠 한 편이 완성됩니다. 촬영 장비도, 편집 프로그램도 필요 없습니다.

이 글은 따라 하기용입니다. "왜 이렇게 하는지" 배경이 궁금하면 제작기 글을 함께 보세요.


완성 목표

  • 길이: 40초 세로 영상(9:16)
  • 주제: "프론트엔드 vs 백엔드"를 식당에 빗댄 입문 숏츠
  • 결과물: 자막이 박힌 short.mp4 한 개 → 유튜브 숏츠 업로드

준비물 (시작 전 체크)

  • Veo 접근 권한 (Google 영상 생성 도구)
  • ffmpeg 설치 — 터미널에서 ffmpeg -version이 나오면 OK
  • 작업 폴더 하나 (예: my-short/)

⚠️ ffmpeg가 없다면: Windows는 winget install Gyan.FFmpeg, macOS는 brew install ffmpeg.

STEP 할 일 예상 시간
1 대본 1장 짜기 5분
2 Veo로 클립 5개 만들기 10분
3 클립 정리 2분
4 ffmpeg로 이어붙이기 3분
5 한글 자막 입히기 8분
6 업로드 2분

STEP 1. 대본 1장 짜기 ⏱ 5분

입문 숏츠의 핵심은 비유 하나입니다. 아래 템플릿의 빈칸만 채우세요.

실습 — 이 표를 채웁니다(이미 예시가 들어 있습니다).

클립 나레이션(대사) 화면 자막
1 "웹사이트는 사실 식당이랑 똑같이 생겼어요" 웹사이트 = 식당
2 "여러분이 보는 예쁜 홀, 이게 프론트엔드예요" 홀 = 프론트엔드
3 "안 보이는 주방이 백엔드예요" 주방 = 백엔드
4 "버튼을 누르면 주방이 요리해서 다시 내와요" 요청 → 응답
5 "보이면 프론트, 안 보이면 백엔드!" 정리

확인: 클립 5개, 각 대사가 한 문장이면 성공. (클립 하나 = 8초라 문장은 짧게)


STEP 2. Veo로 클립 5개 만들기 ⏱ 10분

Veo에 아래 프롬프트를 하나씩 넣어 8초 클립을 만듭니다. 목소리 묘사는 5개 전부 똑같이 유지하세요(안 그러면 클립마다 목소리가 바뀝니다).

실습 — 클립 1 프롬프트(복붙):

Vertical 9:16, cinematic. A cozy modern restaurant at golden hour, warm
lighting, shallow depth of field. Camera slowly pushes in toward an empty
table set for one.
Audio: gentle restaurant ambience, soft chatter, light jazz.
Narrator (warm, friendly Korean male voice, early 30s, calm and clear):
"웹사이트는 사실, 식당이랑 똑같이 생겼어요."
No subtitles, no captions, no on-screen text, no watermark. 8 seconds.

클립 2~5는 장면과 대사만 바꾸면 됩니다:

  • 클립 2: a beautiful dining hall with guests / "여러분이 보는 이 예쁜 홀, 이게 프론트엔드예요."
  • 클립 3: a busy kitchen behind a door, steam and chefs / "근데 음식이 만들어지는 주방은 안 보이죠? 그게 백엔드예요."
  • 클립 4: a waiter taking an order, then serving a finished dish / "버튼을 누르면 주방이 데이터를 요리해서, 다시 화면으로 내와요."
  • 클립 5: a waiter standing between hall and kitchen / "보이면 프론트, 안 보이면 백엔드!"

⚠️ 막히는 곳 1 — 대사를 넣으면 화면에 영어 자막이 박힐 때가 있습니다. 프롬프트 끝의 No subtitles, no captions를 꼭 유지하세요. ⚠️ 막히는 곳 2 — 한국어 발음이 어색하면 그 클립만 대사 없이 다시 뽑고, 나레이션은 나중에 따로 넣으면 됩니다.

확인: 8초짜리 영상 5개가 손에 있으면 성공.


STEP 3. 클립 정리 ⏱ 2분

실습 — 작업 폴더에 클립을 재생 순서대로 이름을 붙여 저장합니다.

my-short/
  1.mp4   2.mp4   3.mp4   4.mp4   5.mp4

확인: 파일명이 숫자 순서면 됩니다. (이 순서대로 이어 붙습니다)


STEP 4. ffmpeg로 이어붙이기 ⏱ 3분

실습 — 작업 폴더에서 먼저 list.txt를 만듭니다.

file '1.mp4'
file '2.mp4'
file '3.mp4'
file '4.mp4'
file '5.mp4'

그리고 한 줄 실행:

ffmpeg -f concat -safe 0 -i list.txt -c copy joined.mp4

확인: joined.mp4가 생기고 재생하면 40초, 5개 장면이 이어집니다.

⚠️ 막히는 곳 — "codec not match" 오류가 나면 클립 규격이 달라서입니다. -c copy를 빼고 아래로 다시 실행하세요(재인코딩):

ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -c:a aac joined.mp4

STEP 5. 한글 자막 입히기 ⏱ 8분

AI 영상은 화면에 정확한 한글을 못 그립니다. 그래서 자막은 우리가 직접 얹습니다. 초보자는 SRT 자막이 가장 쉽습니다.

실습captions.srt 파일을 만듭니다. 형식은 번호 / 시작 --> 끝 / 텍스트입니다.

1
00:00:00,000 --> 00:00:03,000
프론트? 백엔드?

2
00:00:08,000 --> 00:00:15,500
홀 = 프론트엔드

3
00:00:16,000 --> 00:00:23,500
주방 = 백엔드

4
00:00:24,000 --> 00:00:31,500
버튼 → 처리 → 응답

5
00:00:32,000 --> 00:00:39,000
보이면 프론트, 안 보이면 백엔드!

이제 자막을 영상에 구워 넣습니다(한 줄):

ffmpeg -i joined.mp4 -vf "subtitles=captions.srt:force_style='FontName=Malgun Gothic,FontSize=18,Bold=1,PrimaryColour=&H00F0D000,Outline=2,Alignment=2,MarginV=60'" -c:a copy short.mp4
  • FontName — Windows는 Malgun Gothic, macOS는 AppleSDGothicNeo
  • Alignment=2 = 하단 가운데 / MarginV=60 = 아래에서 띄우는 정도
  • PrimaryColour=&H00F0D000 = 시안색 (ffmpeg 색은 &H00BBGGRR 순서)

확인: short.mp4를 재생하면 한글 자막이 박혀 나옵니다. 완성!

⚠️ 막히는 곳 — 자막이 안 보이면 폰트 이름을 확인하세요. 한글 폰트가 아니면 글자가 깨집니다.


STEP 6. (선택) 인트로/아웃트로 붙이기 ⏱ +5분

브랜드 각인을 원하면 앞뒤에 3초 카드를 붙입니다. 이미지(intro.png, outro.png)를 만든 뒤:

# 이미지를 3초 영상으로
ffmpeg -loop 1 -t 3 -i intro.png -vf scale=720:1280 -pix_fmt yuv420p -r 24 intro.mp4
# short 앞에 붙이기(같은 규격 전제)
printf "file 'intro.mp4'\nfile 'short.mp4'\n" > final_list.txt
ffmpeg -f concat -safe 0 -i final_list.txt -c:v libx264 -c:a aac final.mp4

💡 카드는 HTML을 캡처해 만들면 예쁩니다. 방법은 HTML과 Playwright로 이미지 자동 생성 참고.


STEP 7. 업로드 ⏱ 2분

실습 — 유튜브 앱/스튜디오에서 short.mp4 업로드 후:

  • 제목: 프론트엔드 vs 백엔드, 식당이면 5초 컷 (개발 입문)
  • 해시태그: #개발상식 #프론트엔드 #백엔드 #IT #숏츠
  • 커버: Shorts 편집 → 커버에서 눈에 띄는 프레임 선택

확인: 업로드 완료 → 첫 숏츠 발행 🎉


💪 직접 해보기

  • 다른 주제로 바꿔보기: "API = 식당 웨이터", "데이터베이스 = 도서관 사서"
  • 자막 색을 주제마다 다르게(키워드는 시안, 결론은 노랑)
  • 마지막 클립 자막을 "그럼 API는?" 으로 바꿔 다음 편 예고 넣기

✅ 완성 체크리스트

  • 클립 5개(8초)를 Veo로 생성
  • joined.mp4로 이어붙이기 성공
  • captions.srt 작성 후 자막 번인
  • short.mp4 완성 · 유튜브 업로드
  • (선택) 인트로/아웃트로 카드 추가

마치며

여기까지 따라오셨다면 이미 개발 숏츠 한 편을 만드신 겁니다. 반복 제작이 많아지면 매번 ffmpeg 명령을 치는 게 번거로운데, 그때는 전용 편집기를 만들면 편합니다 — 그 과정은 제작기 글에 담아뒀습니다.

블로그 글을 영상으로 바꾸는 다른 방법은 블로그 글을 유튜브 영상으로 만드는 법도 참고하세요.


자주 묻는 질문 (FAQ)

Q. ffmpeg 명령이 너무 어렵습니다. 꼭 써야 하나요? 아니요. CapCut 같은 앱으로도 이어붙이기·자막이 됩니다. 다만 ffmpeg는 명령 한 줄로 반복 자동화가 가능해서, 여러 편을 만들 계획이면 익혀두면 큰 무기가 됩니다.

Q. Veo가 없어요. Runway, Kling, Sora 등으로 대체할 수 있습니다. STEP 2의 프롬프트를 거의 그대로 쓰되, 한국어 대사 지원이 약한 툴은 대사를 빼고 STEP 5 자막으로 보완하세요.

Q. 자막 타이밍은 어떻게 맞추나요? 클립이 8초씩이니 클립 N의 시작은 (N-1)×8초입니다. 클립 2는 8초, 클립 3은 16초… STEP 5의 SRT 시간이 이 규칙을 따릅니다.

Q. 세로 영상이 아니라 가로로 나와요. Veo 프롬프트에 Vertical 9:16을 넣었는지 확인하세요. 이미 만든 가로 영상은 -vf "scale=720:1280:force_original_aspect_ratio=increase,crop=720:1280"으로 세로 크롭할 수 있습니다.

@JavaPark
AI 시대의 개발자 도구, 실전 경험을 공유합니다