Files
GhiVideo_v4/docs/history/2026-07-07_1551_AI영상요약-프레임질문-원본24fps확인-화질표시추가.md
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

2.0 KiB

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.pyresult["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).