# Agent 미팅: 대화형 숏폼 영상 v2 품질 개선 방향 도출

**날짜**: 2026-03-07
**소집 이유**: 제이회장님이 v2 대화형 영상 퀄리티 부족 판단. 벤치마킹 비교 후 개선 방향 도출 필요.
**참여 페르소나**: 불칸, 이리스, 아테나, 아르고스, 토르, 프레이야, 미미르
**미팅 모드**: hybrid
**토론 깊이**: thorough
**총 사이클 수**: 2

---

## Cycle 1 (Independent Round)

### 아누 분석
현재 pipeline/video_composer.py는 턴마다 정적 PNG 슬라이드를 생성하고 ffmpeg concat으로 MP4를 만든다. 벤치마킹 대상(에반/바이브랩스)은 프레임 단위 애니메이션이 핵심. video/ 디렉토리에 SceneRenderer + animations.py가 이미 구현되어 있어 재활용 가능성 높음.

### 페르소나 의견
**불칸(백엔드)**: SceneRenderer 기반 리팩터링 타당. dialogue scene type 필요. 오디오 선계산→프레임 역산 동기화 권장. 메모리 주의(generator 패턴). API facade 패턴으로 호환성 유지.
**이리스(프론트)**: 채팅 버블이 대화형에 더 적합(인지 모델 일치). 3중 인코딩(위치/색상/타이포) 화자 구분. 검은 배경(#0C0C12) + 쿨 화이트(#E8E8F0). 상단(15%)/대화(65%)/하단(20%) 레이아웃.
**아테나(UX)**: "고정 프레임 + 동적 스왑" 하이브리드. 3단 계층화. 자막+화면 내 텍스트 혼용. 4가지 전환 전략(공간 일관성, 전환 애니메이션, 음성 오버랩, 비언어적 신호).
**아르고스(테스터)**: 엣지 케이스 정의 — 1턴 대화, 긴 텍스트 500자+, 빈 텍스트, 3인 이상. v2 frozen + v3 병렬 추천. 리그레션 위험 포인트 정리.
**토르(백엔드)**: slide_to_scene 변환 어댑터 제안. dialogue scene type에 turns 배열 + start_frame/end_frame. TTS 타이밍→frame index 동기화 어댑터. ffmpeg→MoviePy 전환 시 오디오 길이 불일치 주의.
**프레이야(프론트)**: 동적 공간 분리 + 시각적 계층화. 3단계 애니메이션(등장/강조/전환). 색상: 배경 #0F172A→#1E293B, 호스트 파랑, 게스트 초록. 자막 하단 20%.
**미미르(UX)**: TTS 약점을 AI 투명성으로 프레이밍. 3초 임계점 공략. 배경 음악으로 시청 지속률 30% 상승. 에반 정보 계층화 + 바이브랩스 역동성 결합.

### 합의/결론
- SceneRenderer 기반 리팩터링 진행
- 채팅 버블 UI 도입, 검은 배경 전환
- 하단 자막 + 화자 색상 코딩
- TTS 선계산 → 프레임 역산 동기화

### 미해결 항목
- 해상도/비율 변경 대비 (미래 과제)
- 메모리 최적화 (generator vs list)

---

## Cycle 2 (Sequential — DA Round)

### Devil's Advocate
**지정**: 아르고스
1. **실패 시나리오**: TTS 타이밍 오차 누적으로 후반부 자막/음성 분리
2. **후회 이유**: 해상도/비율 하드코딩 → 포맷 다양화 시 전면 재작성 필요
3. **더 단순한 대안**: generate_slide_image()를 버리지 말고 오버레이 레이어로 격하, FFmpeg overlay 필터 활용

**반박**: synthesize_with_timing()이 실측 duration 기반이므로 오차 누적 없음. SceneRenderer는 width/height 파라미터화 이미 완료.
**판정**: 반박 수용. DA 우려는 설계로 해소됨.

### 비관습적 대안
**제시**: FFmpeg Filtergraph-Only 렌더링 — 파이썬은 명령어 조립기만 담당
- 최강 지지: RAM 병목 해소, HW 가속 즉시 활용
- 최강 반론: 동적 채팅 버블 위치 계산 불가, filtergraph 유지보수 난이도
- 이상적 시나리오: 템플릿 고정형 대량 생산
- 노력: 중간
- 리스크: 중간

**판정**: 기각 — 이미 구현된 video/ 엔진 재활용이 더 효율적. 동적 UI 구현에 부적합.

---

## 최종 합의 사항
1. pipeline/video_composer.py를 SceneRenderer + animations.py 기반으로 리팩터링
2. 검은 배경(rgb 12,12,18) + 채팅 버블 UI (호스트: 우측/민트, 게스트: 좌측/오렌지)
3. 하단 자막 영역(20%) + 화자 이름 색상 코딩
4. 텍스트 페이드인 애니메이션 (버블 등장 효과)
5. TTS 오디오 선계산 → 실측 duration → 프레임 역산 동기화
6. compose_video() API 시그니처 유지, 내부만 교체

## 미해결 항목
- 9:16 → 1:1 비율 변경 대비 (미래 과제)
- generator 패턴 메모리 최적화 (30초 이내 영상이므로 현재는 리스트 허용)

## 다음 단계
- Step 3 구현: video_composer.py 개선 + 테스트 + 샘플 MP4 생성
