# AI Video Brief — "왜 60프레임이 아니냐" 질문 조사 + 화질/프레임 표시 추가

**소요 시간**: 10분
**Context 사용량**: input 720k / output 52k tokens (추정값)

## 질문

저장한 동영상이 60fps가 아니라 30fps 정도밖에 안 되는 이유.

## 조사 결과 (결론: 다운로드 문제 아님, 원본이 24fps)

- ffprobe로 저장 파일 확인: 사용자가 받은 영상들은 1080p **23.98fps**(AV1), 1920x960 **29.97fps**
- 해당 영상("1시간으로 끝내는 DJI 미니 5 프로 사용 설명서", oItten2naxk)의 유튜브 제공 포맷 전수 조사:
  144p~2160p(4K) **전부 24fps만 존재** — 원본이 24fps로 업로드된 영상
- 유튜브는 원본보다 높은 프레임을 생성하지 않으므로 60fps는 불가능. 다운로더는 제공되는 최고 품질(1080p24)을 정상적으로 받았음
- 추가 발견: 이 영상은 4K까지 제공되지만 기본 상한 `VIDEO_MAX_HEIGHT=1080`이라 1080p로 받음 (환경변수로 조정 가능)

## 보완 구현

1. `downloader.download_video()` — 포맷 선택에서 `ext=mp4` 코덱 제한 제거
   (`bestvideo[height<=H]+bestaudio` → mp4 통에 병합). vp9만 60fps를 제공하는 옛 영상도 프레임을 놓치지 않게.
   반환값을 `(경로, {height, fps})` 튜플로 변경.
2. `main.py` — `result["quality"]`에 "1080p 24fps" 형식 저장
3. 웹 화면 — 다운로드 완료 링크에 실제 받은 화질/프레임 표시: "⬇️ mp4 저장 (240p 15fps · 0.5MB)"

## 테스트

- ✅ 테스트 영상 다운로드 → "240p 15fps · 0.5MB" 정확히 표시 (2005년 저화질 영상이라 정상)

## 다음 에이전트 참고

- 사용자가 프레임/화질 관련 질문 시: 먼저 `ffprobe`로 저장 파일 확인 → yt-dlp `extract_info`로 유튜브 제공 포맷 목록과 비교. 원본 fps 이상은 어떤 방법으로도 불가능.
- 4K로 받고 싶다는 요청이 오면 `VIDEO_MAX_HEIGHT=2160` 환경변수 (run.sh 실행 전 export).
