피드로 돌아가기
Dev.toAI/ML
원문 읽기
15분 이내 YouTube 영상을 AI 분석하여 8-12개 수직 숏폼 클립을 자동 생성함
Building an AI Video Clipping Pipeline: Architecture, Tradeoffs, and What We Learned
AI 요약
Context
YouTube URL을 입력받아 15분 이내에 수직 형식의 숏폼 클립을 자동 생성하는 AI 비디오 파이프라인을 운영함. JavaScript, Python, FFmpeg 등 서로 다른 런타임 간의 효과적인 통신 메커니즘이 핵심 과제임.
Technical Solution
- Bull Queue: Redis 백업으로 YouTube 다운로드 실패 시 자동 재시도 로직 처리함
- yt-dlp 스트리밍: 전체 파일 다운로드 대신 스트리밍 방식으로 지연 시간 3-5분 감소시킴
- GPT-4o 분석: 트랜스크립트를 30-120초 세그먼트로 분할하여 호크 강도, 서사 완결성, 정보 밀도, 감정 콘텐츠 기준 바이럴 점수 산출함
- MediaPipe Face Detection: Node.js와 Python 간 JSON-over-stdin/stdout IPC 프로토콜로 persistent 서브프로세스 통신함
- FFmpeg 동적 크롭: 얼굴 위치 추적과 자막 번인을 단일 패스로 결합하여 처리 시간 35% 절감함
Impact
15분 이내 처리 완료. FFmpeg 인코딩 시간 35% 감소. Python 프로세스 재사용으로 모델 로딩 오버헤드 제거하여 40% 속도 향상 달성함.
Key Takeaway
GPU 제한된 환경에서 MediaPipe 실행 시 MEDIAPIPE_DISABLE_GPU=1과 OMP_NUM_THREADS=1 환경 변수를 import 전에 설정해야 함. 비디오 다운로드 자체를 프록시하면 대역폭 소모와 실패율이 급증하므로 메타데이터만 프록시 처리해야 함.
실천 포인트
Railway 등 컨테이너 환경에서 MediaPipe 사용 시 pthread 워커 제한으로 인한 비정상 종료 발생함. Python ML 모듈 import 전에 os.environ 설정으로 단일 스레드 모드를 강제 적용해야 안정적으로 동작함.