소개
유튜브에서 마음을 따뜻하게 만드는 짧은 영상들을 볼 때마다 이런 생각이 들었습니다.
"나도 누군가에게 위로를 전하는 채널을 만들고 싶다."
하지만 현실은 달랐습니다.
어떤 내용을 말해야 할지 기획부터 막히고
어울리는 이미지를 찾는 것도 어렵고
나레이션을 넣고 자막을 맞추는 과정은 더더욱 부담스러웠습니다
특히 영상 편집 경험이 없는 상태에서 이 모든 과정을 반복하는 것은 거의 불가능에 가까웠습니다.
단 하나의 문장만 입력하면 AI 로 영상이 완성되는 자동화 파이프라인을 구축해보기로 했습니다.
처음에는 스터디에서 공유받은 파이프라인 프로그램을 실행해보며 전체 흐름을 이해하는 것부터 시작했습니다.
진행 방법
1. 사용 도구 및 환경
이번 실험은 여러 AI 도구와 기존 영상 처리 기술을 조합하는 형태로 진행되었습니다.
언어 및 인프라
Python 3.11+
Node.js 18+
FFmpeg
브레인 (LLM)
Gemini 3 flash
역할: 시나리오 작성 + 이미지 프롬프트 생성
비주얼 생성
Nano Banana
Grok Imagine Video (fal.ai API)
음성 생성
Typecast (감성 한국어 TTS)
자동화 엔진
kkulim-video 파이프라인 (스터디 제공)
2. "한 줄 입력 → 영상 완성" 흐름
이번 파이프라인의 핵심은 단순합니다.
"주제 한 줄" → "스토리 생성" → "이미지/영상 생성" → "음성 + 자막" → "최종 렌더링"
실제로 사용한 입력은 단 한 줄이었습니다.
주제: 지친 하루를 위로하는 따뜻한 한마디
이 한 줄을 기반으로 AI는 다음을 자동으로 생성했습니다.
감정 흐름이 있는 3개의 장면 구성
각 장면별 나레이션
영상 연출 (카메라 움직임)
이미지 생성용 프롬프트
📌 생성된 시나리오 일부
scenes:
- id: 1
narration: 오늘 하루, 정말 버티기 힘들었죠? 남들은 모르는 당신의 고단함, 내가 다 알고 있어요.
duration: 8
camera: 익스트림 클로즈업에서 서서히 바스트샷으로 줌아웃
- id: 2
narration: 애쓰지 마요. 이제 그 무거운 짐은 잠시 내려놓아도 돼요. 당신은 존재만으로도 충분히 빛나는 사람이니까요.
duration: 10
- id: 3
narration: 그런데 그거 알아요? 내일 아침, 당신에게 아주 놀라운 기적이 찾아올 거예요. 그게 뭐냐면...
duration: 12
🎨 생성된 비주얼 프롬프트 일부
Masterpiece, high quality, cinematic lighting, ethereal atmosphere, soft focus, dreamy pastel colors,
Studio Ghibli inspired aesthetic mixed with realistic textures, 8k resolution, vertical composition.
이 단계에서 느낀 점은 명확했습니다.
"AI는 이미 '콘텐츠 기획자' 역할까지 수행하고 있다."
3. 예상치 못한 문제와 해결
파이프라인을 실행하는 과정에서 작은 문제 하나가 전체 흐름을 멈추게 만들었습니다.
바로 ffprobe 실행 권한 문제였습니다.
윈도우 환경에서 특정 시스템 도구 접근이 제한되면서 영상 길이를 가져오는 과정이 실패했습니다.
처음에는 단순한 에러처럼 보였지만, 파이프라인 전체가 멈추는 치명적인 문제였습니다.
그래서 접근 방식을 바꿨습니다.
"안 되면, 다른 방식으로 우회하자"
ffprobe 대신 ffmpeg 출력 로그에서 Duration을 파싱하는 방식으로 해결했습니다.
def _get_video_duration(video_path: Path) -> float:
"""ffmpeg -i로 영상 길이를 구한다 (ffprobe 접근 거부 대비)."""
import re
result = subprocess.run(
["ffmpeg", "-i", str(video_path)],
capture_output=True, text=True,
)
match = re.search(r"Duration:\\s+(\\d+):(\\d+):(\\d+\\.\\d+)", result.stderr)
if match:
h, m, s = match.groups()
return float(h) * 3600 + float(m) * 60 + float(s)
return 0.0
이 경험을 통해 단순히 기능 구현이 아니라,
"환경에 흔들리지 않는 설계"가 중요하다는 것을 깨달았습니다.
결과와 배운 점
1. 결과물
결과적으로 약 30초 분량(46MB)의 숏폼 영상이 완성되었습니다.
"한 줄 입력"만으로 실제 영상이 만들어졌다는 점에서 의미 있는 첫 결과였습니다.
하지만 결과물을 확인하면서 아쉬운 점도 분명히 드러났습니다.
캐릭터 외형이 장면마다 달라짐 (일관성 부족)
나레이션과 자막 싱크 불일치
입모양과 음성 불일치
장면 전환이 부자연스러움
배경음악이 끊기는 느낌
이 모든 문제는 한 가지 공통 원인으로 이어졌습니다.
"AI에게 너무 많은 것을 한 번에 맡겼다"
영상 제작에 $1.97 가 사용됐네요.
2. 시행착오에서 얻은 인사이트
🔹 1) 자동화 ≠ 완전 위임
모든 단계를 AI에 맡기면 오히려 품질이 흔들림
특히 캐릭터 일관성은 별도 관리가 필요
🔹 2) 환경 의존성은 반드시 제거해야 한다
ffprobe 문제처럼 작은 요소가 전체 시스템을 멈출 수 있음
대체 로직은 필수
🔹 3) 인코딩 문제는 초기에 잡아야 한다
자막 + 이모지 → UTF-8 강제 설정 필요
3. 앞으로의 개선 방향
이번 실험을 통해 단순 자동화에서 한 단계 더 나아갈 방향이 명확해졌습니다.
🚀 개선 계획
캐릭터 사전 생성 및 고정 (일관성 확보)
자막 타이밍 자동 보정 로직 추가
장면 전환 템플릿화
BGM 자연스럽게 이어붙이기
"완전 자동" → "반자동 + 품질 제어" 구조로 전환
도움 받은 글 (옵션)
스터디 내 공유 자료 및 kkulim-video 파이프라인