피드로 돌아가기
Dev.toInfrastructure
원문 읽기
FFmpeg Input Seeking 최적화 및 API 기반 썸네일 추출 아키텍처 설계
How to Generate Video Thumbnails with FFmpeg (CLI + API)
AI 요약
Context
비디오 썸네일 추출을 위한 서버 내 FFmpeg Binary 직접 관리 시 발생하는 인프라 확장성 저하와 임시 파일 저장 공간 부족 문제 분석. 특히 프레임 정확도와 처리 속도 간의 Trade-off로 인한 성능 병목 지점 발생.
Technical Solution
- Input Seeking(-ss를 -i 앞에 배치) 방식을 통한 빠른 타임스탬프 점프 및 디코딩 오버헤드 최소화 설계
- Lossless 품질 보장을 위한 PNG 채택 시 JPEG 대비 5~10배 증가하는 파일 크기 제약 사항 반영
- fps 필터를 활용한 정기적 간격의 프레임 추출로 썸네일 스트립 생성 로직 구현
- API 기반의 Serverless 구조를 통해 Binary 관리 및 인프라 Scaling 부담 제거
- -pix_fmt yuvj420p 설정을 통한 코덱별 색상 왜곡 문제 해결 및 HEVC 디코딩 지원 환경 구축
- Presigned URL 기반의 3단계 업로드 플로우를 통한 비공개 비디오 데이터 처리 파이프라인 구성
실천 포인트
- 블랙 프레임 회피를 위해 0초가 아닌 1~5초 지점부터 Seeking 수행 - 영상 길이 초과 타임스탬프 입력 시 FFmpeg의 Silent Exit 가능성을 고려한 ffprobe 사전 검증 - 웹 표시용은 JPEG, 후처리 파이프라인용은 PNG, 고효율 압축 필요 시 WebP 선택 - 대량의 썸네일 필요 시 단일 요청보다 병렬 API 호출을 통한 처리 시간 단축