스크립트부터 영상까지, LLM으로 동영상 에이전트 붙이는 방법

LLM동영상에이전트RunwaySora비디오자동화에이전트

LLM을 “대본 작성기”로만 쓰지 않고, 그 다음 단계인 음성 합성 → 영상 생성/편집 → 합성까지 이어 주는 에이전트를 만들면, 한 번의 요청으로 동영상이 나오는 파이프라인을 만들 수 있다. 이 글에서는 그걸 어떤 구조로 나누고, 어떤 API를 붙이면 되는지 개발자 관점에서 정리한다.


1. 파이프라인을 단계로 나누기

동영상 에이전트는 보통 대본 → 음성 → 비주얼 → 합성 순서로 단계를 나눈다.

  1. 대본 생성
    사용자 입력(주제, 톤, 길이 등)을 받아 LLM으로 시나리오·나레이션 텍스트를 만든다.
  2. 음성
    대본을 TTS API(ElevenLabs, Google TTS, 클로바 등)로 넘겨 음원을 만든다.
  3. 비주얼
    장면 설명이나 프롬프트를 비디오 생성 API(Runway, Sora, Kling, Veo 등)나 이미지 생성 후 영상화로 채운다.
  4. 합성
    음원 + 영상(·이미지 슬라이드)을 FFmpeg 등으로 타임라인에 맞춰 합친 뒤, 인코딩·출력한다.

에이전트는 이 단계들을 조율하는 역할을 한다. LLM이 “지금 어떤 단계인지, 다음에 뭘 호출할지”를 결정하고, 각 단계는 전용 API나 스크립트를 호출하는 식으로 구현하면 된다.


2. LLM이 기획·대본을 담당하게 하기

입력은 “주제 한 줄” 또는 “타겟, 분량, 톤” 정도로 두고, LLM에게 다음을 시키면 된다.

  • 주제를 바탕으로 시나리오/나레이션 대본 생성
  • 필요하면 장면별로 쪼개기 (예: “1장면: ~”, “2장면: ~”)
  • 각 장면에 맞는 비디오/이미지용 프롬프트 추출

출력 형식은 JSON이나 마크다운으로 고정해 두고, 다음 단계(음성·영상)에서 파싱하기 쉽게 만든다.
예: { "script": "...", "scenes": [ { "narration": "...", "visual_prompt": "..." } ] }


3. 음성·영상 API 고르기

음성(TTS)

  • ElevenLabs, Google Cloud TTS, AWS Polly, 네이버 클로바 등
  • 대본 텍스트 + 언어/음색 설정만 넘기면 음원 파일이 나오는 API를 쓰면 된다.

영상 생성

  • Runway Gen-4: API 제공, 이미지→영상·텍스트→영상 지원, 작업 워크플로에 잘 맞음
  • OpenAI Sora: 품질은 높으나 지역·구독 제한 있음, API 정책 확인 필요
  • Kling: 긴 구간·물리 시뮬레이션에 강점
  • Google Veo: GCP 연동·엔터프라이즈 용도
  • DiffusionRouter 같은 통합 API가 있으면, 한 번 붙여 두고 모델만 바꾸는 방식도 가능하다.

에이전트 단에서는 “장면 N용 비디오 생성” 요청을 위 API에 넘기고, 나온 영상 URL/파일을 다음 단계로 전달하면 된다.


4. 합성: FFmpeg로 음원 + 영상 붙이기

음원 길이에 맞춰 영상 클립을 이어 붙이거나, 이미지 + 음원으로 슬라이드 영상을 만드는 식이다.
FFmpeg 예시(음원 + 한 장면 영상):

ffmpeg -i audio.mp3 -i scene1.mp4 -c:v copy -c:a aac -shortest output.mp4

여러 장면이면 concat demuxer로 클립을 이어 붙인 뒤, 마지막에 음원을 믹스하면 된다.
이 부분을 스크립트나 작은 서비스로 만들어 두고, 에이전트는 “음원 경로 + 영상 경로 목록”만 넘겨 주면 된다.


5. 에이전트 구조 잡기

  • 오케스트레이터: LLM(클로드, GPT 등)이 사용자 입력을 해석하고, “대본 생성 → 장면 분리 → (장면별) 음성/영상 생성 → 합성” 순서를 정한다.
  • 도구(Tools):
    • generate_script(prompt) → 대본 + 장면/비주얼 프롬프트
    • generate_voice(text, voice_id) → 음원 파일
    • generate_video(prompt, options) → 영상 파일/URL
    • merge_media(audio_path, video_paths) → 최종 영상
  • 상태: 현재 단계, 생성된 자산(대본, 음원, 장면별 영상)을 메모리나 디스크에 두고, 실패 시 재시도·일부만 재생성하는 로직을 넣을 수 있다.

LangChain, CrewAI, 자체 오케스트레이션 스크립트 등 어떤 스택을 쓰든, “LLM이 도구를 골라 호출하고, 결과를 다음 단계에 넘긴다”는 패턴은 동일하다.


6. 비용·실패 처리

  • 비용: TTS·비디오 생성 API는 호출당 과금이 크다. 짧은 영상·저해상도로 프로토타입을 먼저 돌려 보고, 사용량을 모니터링하는 게 좋다.
  • 실패: API 타임아웃, 생성 실패(부적절한 콘텐츠 등)가 있으므로, 재시도·폴백(다른 모델/설정)·사용자 알림을 넣어 두면 운영이 수월하다.

7. 참고할 만한 사례

  • n8n + LLM: “대본 생성(OpenAI) → ElevenLabs 음성 → Runway 영상 → FFmpeg 합성 → 유튜브 업로드” 같은 워크플로를 노드로 엮은 사례가 있다.
  • Director(video-db): 비디오 에이전트용 프레임워크로, 검색·편집·생성·편집을 에이전트로 묶는 구조를 참고할 수 있다.
  • Scripts-to-Video(DeepBrain 등): 대본+설정만 넣으면 템플릿 기반 영상을 만들어 주는 API가 있어, “빠른 프로토타입”용으로 활용할 수 있다.

정리하면, LLM으로 동영상을 만드는 에이전트는 “대본 → 음성 → 영상 → 합성”이라는 단계를 LLM이 기획하고, 각 단계를 전용 API로 실행하는 구조로 만들 수 있다. 먼저 단계별로 수동 파이프라인을 돌려 본 뒤, 그걸 도구로 감싸서 에이전트에 붙이는 순서로 진행하면 이해하기도 구현하기도 수월하다.


BlueFox Dev - 2026년 2월 3일

궁금한 점이 있으신가요?

문의사항이 있으시면 언제든지 연락주세요.