피드로 돌아가기
Dev.toInfrastructure
원문 읽기
FFmpeg.wasm 기반 Client-side Transmuxing을 통한 Reddit 고화질 비디오 다운로더 설계
Разбор архитектуры Reddit: Как создать высокопроизводительный загрузчик видео с поддержкой DASH и HLS
AI 요약
Context
Reddit의 MPEG-DASH 및 HLS 도입으로 인한 비디오-오디오 스트림 분리 구조로 단순 URL 추출만으로는 무음 영상이 다운로드되는 한계 존재. 서버 사이드 렌더링 방식의 기존 다운로더는 인프라 비용 증가와 처리 지연이라는 병목 지점 발생.
Technical Solution
- FFmpeg.wasm 도입을 통한 Client-side Lossless Transmuxing으로 서버 부하 제거 및 개인정보 보호 강화
-c copy플래그 사용을 통한 재인코딩 없는 패킷 단위 결합으로 원본 품질 유지 및 처리 속도 최적화- Node.js 기반 Streaming Proxy 구축을 통해 Reddit CDN의 CORS 제한 및 403 Forbidden 에러 해결
- ReadableStream 기반의 데이터 전송 체계 설계로 서버 메모리 점유율 최소화 및 대용량 파일 처리 효율 증대
- Promise Pool 기반의 Async Concurrency 제어를 통해 세그먼트 병렬 다운로드로 네트워크 대역폭 최대 활용
실천 포인트
1. Heavy-processing 작업의 Client-side 이전 가능성 검토 (Wasm 활용)
2. CORS 제한 해결을 위한 Lightweight Streaming Proxy 설계 적용
3. 대용량 바이너리 처리 시 메모리 릭 방지를 위한 ReadableStream 도입
4. 다수 세그먼트 요청 시 Concurrency Limit을 설정한 병렬 처리 패턴 적용