피드로 돌아가기
Giải mã kiến trúc phân phối Media của Pinterest: Xây dựng Engine trích xuất hiệu suất cao với Async I/O và FFmpeg
Dev.toDev.to
Backend

Async I/O 및 Lossless Muxing을 통한 Pinterest HLS 미디어 추출 최적화

Giải mã kiến trúc phân phối Media của Pinterest: Xây dựng Engine trích xuất hiệu suất cao với Async I/O và FFmpeg

yqqwe2026년 4월 25일6advanced

Context

Pinterest의 HLS(.m3u8) 기반 적응형 비트레이트 스트리밍 구조로 인한 단일 파일 추출의 어려움 발생. WAF의 Headless Browser 탐지 및 고용량 미디어 처리 시 서버 리소스 병목 현상이라는 기술적 제약 존재.

Technical Solution

  • TLS Fingerprinting 및 HTTP/2 Header 모사 기반의 Metadata 추출로 Selenium 대비 수집 속도 10배 향상
  • Python Asyncio와 FastAPI 기반의 Non-blocking I/O 설계를 통한 동시 요청 처리 능력 확보
  • CDN에서 사용자까지 데이터를 직접 전달하는 Zero-storage Buffer 구조 설계로 디스크 I/O 제거
  • FFmpeg의 -c copy 옵션을 활용한 Lossless Muxing으로 픽셀 재계산 없는 컨테이너 변환 및 CPU 부하 최소화
  • Coroutine Pool 기반의 TS Segment 병렬 페칭을 통한 전체 영상 조립 시간 단축
  • Redis 기반 Distributed Session Storage 운영을 통한 Token 순환 및 Rate Limiting 우회

1. 대용량 파일 전송 시 디스크 쓰기 없이 Memory Chunk 단위로 전달하는 스트리밍 구조 검토

2. WAF 우회를 위해 단순 User-Agent 변경이 아닌 TLS Cipher Suites 및 HTTP/2 Frame 레벨의 시뮬레이션 적용

3. 미디어 포맷 변경 시 재인코딩 대신 Copy-codec 기반의 Muxing 가능 여부 확인

4. I/O 바운드 작업의 병렬성 확보를 위한 Coroutine Pool 및 Backpressure 제어 메커니즘 도입

원문 읽기