본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 15. 21:43

GoPro 영상을 자동으로 편집하는 AI를 만들었습니다. 그 작동 원리를 소개합니다

요약

GoPro 등 액션 카메라로 촬영한 방대한 양의 영상을 자동으로 편집해주는 AI 서비스 'FirstCut Studio'를 소개합니다. 이 시스템은 원본 클립 업로드 시 Gemini 2.5 Flash를 이용해 장면 경계, 주요 순간, 감정적 톤 등을 분석하고, 이후 내러티브 플래너가 음악 비트에 맞춰 최고의 하이라이트 영상을 자동으로 생성합니다. 특히, 영상 정규화 과정을 생략하여 인프라 비용과 처리 시간을 크게 절감한 것이 핵심적인 엔지니어링 성과입니다.

핵심 포인트

  • Gemini 2.5 Flash를 활용하여 클립의 품질 등급, 장면 경계, 주요 순간 등을 자동으로 감지하고 태깅합니다.
  • 내러티브 플래너가 음악 비트(Beat)에 맞춰 컷 전환을 수행함으로써 전문적인 느낌의 자동 편집물을 만듭니다.
  • 전통적인 영상 처리 방식인 '비디오 정규화' 과정을 생략하여 스토리지 비용과 처리 시간을 절감했습니다.
  • LLM 기반 엔진이 사용자의 창의적 의도(예: '에너지가 넘치게')를 구체적인 VFX 파라미터로 매핑하는 것이 가능합니다.

모든 액션 카메라 소유자는 그 기분을 알고 있습니다. 서핑 여행, 산악 자전거 라이딩, 또는 스키 주말을 보내고 돌아오면 SD 카드에는 200개의 클립이 쌓여 있습니다. 이번 주말에 편집하겠다고 스스로 다짐하지만, 결코 그렇게 하지 못하죠. 저 또한 몇 년 전 여행에서 찍은 GoPro 영상을 그대로 방치해 왔습니다. 편집 과정은 너무나 고통스럽습니다. 흔들리고 지루한 몇 시간 분량의 영상을 훑으며 보석 같은 30초를 찾아내야 하고, 그다음에는 트랜지션 (Transitions), 음악 타이밍, 페이싱 (Pacing)을 고민해야 합니다. 대부분의 사람들은 포기하고 영상은 하드 드라이브에 영원히 남겨집니다. 그래서 저는 이 문제를 해결하기 위해 FirstCut Studio를 만들었습니다. 원본 클립을 업로드하고 분위기 (Vibe)를 선택하기만 하면, AI가 나머지를 처리합니다. 타임라인 (Timeline)도 필요 없고, 편집 기술도 필요 없습니다. 그저 정말 멋져 보이는 하이라이트 릴 (Highlight reel)이 만들어질 뿐입니다. 내부적으로 어떻게 작동하는지 설명하겠습니다.

파이프라인 (The Pipeline)
FirstCut은 두 개의 별도 파이프라인을 실행합니다. 하나는 영상을 이해하기 위한 것이고, 다른 하나는 편집물을 생성하기 위한 것입니다.

가져오기 파이프라인 (Import Pipeline - 클립을 업로드할 때 일어나는 일):

  • 인제스트 (Ingest) - 메타데이터를 추출하고, 파일 해시를 계산하며, 비디오 속성을 조사하고, 방향을 감지합니다. 한 가지 중요한 결정 사항은, 이 단계에서 비디오 정규화 (Normalization)를 전혀 수행하지 않는다는 것입니다. 원본 파일이 그대로 통과됩니다.
  • Gemini 분석 (Gemini Analyze) - 이것이 핵심입니다. 우리는 각 클립을 Gemini 2.5 Flash로 보내 구조화된 프롬프트 (Structured prompt)를 통해 품질 등급을 매기고, 장면 경계를 식별하며, 주요 순간(높은 점프, 충돌, 경치 좋은 전망, 축하 장면 등)을 감지하고, 감정적 톤을 태깅하도록 요청합니다. Gemini는 타임스탬프와 신뢰도 점수가 포함된 JSON을 반환합니다.
  • 음악 분석 (Music Analysis) - 오디오의 비트 추적 (Beat tracking)을 위해 librosa를 실행한 다음, Gemini를 통해 의미론적 이해(이 부분이 빌드업인가? 드롭인가? 아니면 차분한 구간인가?)를 거칩니다.
  • 세그먼트 (Segment) - Gemini가 식별한 경계를 사용하여 장면 감지 및 클립 추출을 수행합니다.

렌더 파이프라인 (Render Pipeline - "편집 생성"을 눌렀을 때 일어나는 일):

  • 내러티브 플래너 (Narrative Planner) - 어떤 클립을 어떤 순서로 포함할지, 어떤 효과를 사용할지 선택하는 LLM 기반의 구성 엔진입니다.
  • 음악 타이밍 (Music Timing) - 모든 컷을 비트에 맞추어 트랜지션이 비트 위에 떨어지도록 합니다. 이것이 자동 편집이 무작위가 아닌 전문적인 느낌을 주는 비결입니다.

Render - 3단계 메모리 효율적 FFmpeg 렌더링 (3-pass memory-efficient FFmpeg render). 작업 사이에 가비지 컬렉션 (Garbage Collection)을 수행하며 세그먼트를 순차적으로 처리하여, 피크 메모리 (Peak memory)를 8GB 대신 약 1.5GB 수준으로 유지합니다. QC - EDL 무결성과 비트 정렬 정확도를 검증하는 자동 품질 검사 (Automated quality check).

흥미로운 엔지니어링 과제
CreativeExecutionEngine은 "에너지가 넘치게 만들어줘"라는 요구와 실제 FFmpeg 필터 파라미터 (Filter parameters) 사이의 간극을 메웁니다. LLM은 "점프할 때 스피드 램프 (Speed ramp)를 적용하고, 정점에서 유지한 뒤, 착지 시 스냅 컷 (Snap cut)으로 전환해줘"와 같은 창의적 의도를 출력합니다. 엔진은 이를 구체적인 VFX로 매핑합니다: ease-in 커브를 적용한 2배속 스피드 램프, 0.5배속 슬로 모션 유지, 그리고 3프레임 하드 컷 (Hard cut). AI가 과하게 작동하는 것을 방지하기 위해 하드 캡 (Hard caps, 편집당 최대 분할 화면 2개, 스피드 램프 3개, 텍스트 오버레이 5개)을 적용합니다.

기술 스택: Next.js 프론트엔드, Python/FastAPI 백엔드, 모든 비디오 이해를 위한 Gemini 2.5 Flash, 렌더링을 위한 FFmpeg, 그리고 스토리지를 위한 Cloudflare R2.

한 가지 배운 점: 비디오 정규화 (Video normalization)를 건너뛰세요. 초기 버전에서는 분석 전에 모든 업로드 파일을 표준 형식으로 다시 인코딩했습니다. 이는 스토리지 비용을 3배로 늘렸고 처리 시간을 몇 분씩 추가했습니다. 원본 파일을 Gemini에 직접 보내는 것을 테스트했을 때, Gemini는 이를 완벽하게 처리했습니다. 정규화를 제거한 것이 인프라 측면에서 가장 큰 승리였습니다.

실제로 일어나는 일
최근 한 사용자가 며칠간의 여행에서 찍은 약 200개의 클립을 업로드했습니다. 임포트 파이프라인 (Import pipeline)이 모든 클립을 처리했고, Gemini가 각 클립을 등급화했으며, 시스템은 전체 컬렉션에서 가장 강력한 순간들을 식별했습니다. 사용자가 렌더링을 실행하자, 내러티브 플래너 (Narrative planner)가 최고의 푸티지 (Footage)를 추출하고, 모든 것을 비트에 맞춘 뒤, 몇 분 만에 최종 편집본을 전달했습니다.

먼저 사용해 보세요
FirstCut은 firstcutstudio.xyz에서 무료 티어와 함께 운영 중입니다. 잊고 있었던 GoPro 영상을 업로드하고 결과물을 확인해 보세요. 비디오 AI 분야에 관심 있는 개발자라면 여러분의 의견을 듣고 싶습니다. 공개적으로 빌딩 (Building in public)하고 있으니, 아키텍처에 대한 질문이나 다음에 무엇을 만들지에 대한 제안이 있다면 언제든 연락해 주세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0