6 AI 파이프라인
AI PIPELINE
−
100%
+
전체화면
원본 .drawio ↓
Source
(사용자 영상)
Source
(사용자 영상)
모바일 촬영 (격자 내 GPS)
모바일 촬영 (격자 내 GPS)
갤러리 선택 (mp4·mov)
갤러리 선택 (mp4·mov)
1~30초 · 검증된 s3Key
1~30초 · 검증된 s3Key
Ingestion
(적재 · 원본 불변)
Ingestion
(적재 · 원본 불변)
presigned PUT → S3 pending/
presigned PUT → S3 pending/
메타 저장 (videos row)
메타 저장 (videos row)
상태 = UPLOADED
상태 = UPLOADED
Preprocess
(전처리)
Preprocess
(전처리)
1080p·30fps 다운스케일 — 필수 전제
1080p·30fps 다운스케일 — 필수 전제
FFmpeg 인코딩·썸네일 추출
FFmpeg 인코딩·썸네일 추출
상태 = ENCODING
상태 = ENCODING
AI Analyze
(분석)
AI Analyze
(분석)
PySceneDetect 장면 분할
PySceneDetect 장면 분할
CLIP 하이라이트 스코어링
CLIP 하이라이트 스코어링
YOLO 얼굴·차량번호 탐지 → 블러
YOLO 얼굴·차량번호 탐지 → 블러
pHash 중복 검사
pHash 중복 검사
상태 = BLURRING
상태 = BLURRING
Output
(산출)
Output
(산출)
인코딩본·썸네일 S3 저장
인코딩본·썸네일 S3 저장
하이라이트 구간 메타 갱신
하이라이트 구간 메타 갱신
상태 = READY (실패 시 FAILED)
상태 = READY (실패 시 FAILED)
제어 — 상시 Python FastAPI AI 서버 (Lambda·GPU 대안 기각)
제어 — 상시 Python FastAPI AI 서버 (Lambda·GPU 대안 기각)
Kafka video.uploaded 컨슈머
Kafka video.uploaded 컨슈머
상태 머신 UPLOADED→ENCODING→BLURRING→READY/FAILED
상태 머신 UPLOADED→ENCODING→BLURRING→READY/FAILED
실패 시 재시도·FAILED 마킹
실패 시 재시도·FAILED 마킹
실측 (dev EC2): 1080p 30초 E2E 4.3분
실측 (dev EC2): 1080p 30초 E2E 4.3분
저장 계층
저장 계층
S3 pending/ (원본 · 불변)
S3 pending/ (원본 · 불변)
S3 encoded/ · thumbnails/
S3 encoded/ · thumbnails/
PostgreSQL videos (상태·메타)
PostgreSQL videos (상태·메타)
소비자
앱 재생 (presigned GET)
격자 썸네일 · 하이라이트 확인
소비자
앱 재생 (presigned GET)
격자 썸네일 · 하이라이트 확인
트리거
트리거
load
load
write
write
READY 갱신
READY 갱신
read
read
Text is not SVG - cannot display
박스에 마우스를 올리면 연결된 것만 남고 나머지가 흐려집니다. 클릭하면 고정되고, 빈 곳을 누르거나 Esc 로 풉니다.