피드로 돌아가기
เจาะลึกสถาปัตยกรรม Media Streaming ของ LinkedIn: การสร้าง Engine สกัดวิดีโอประสิทธิภาพสูงด้วย HLS และ FFmpeg
Dev.toDev.to
Backend

Async I/O 및 FFmpeg Stream Copy를 통한 고성능 HLS 비디오 추출 시스템 설계

เจาะลึกสถาปัตยกรรม Media Streaming ของ LinkedIn: การสร้าง Engine สกัดวิดีโอประสิทธิภาพสูงด้วย HLS และ FFmpeg

yqqwe2026년 4월 18일2intermediate

Context

기존의 정적 MP4 링크 방식에서 HLS 기반의 Dynamic Adaptive Streaming으로 전환된 LinkedIn 미디어 아키텍처 분석. 네트워크 상태에 따라 화질이 변하는 m3u8 플레이리스트 구조로 인해 단일 고화질 파일 추출을 위한 복잡한 파싱 로직과 인증 체계 극복이 필요함.

Technical Solution

  • Recursive m3u8 Parsing를 통한 Master Playlist 분석 및 최고 Bitrate 트랙의 자동 식별 구조 설계
  • Guest Token 및 Bearer Token 기반의 다중 인증 계층 우회를 위한 Self-healing Session Pool 구현
  • Anti-bot 탐지 회피를 위한 최소 수준의 Browser Fingerprinting 시뮬레이션 적용
  • Python Asyncio와 Httpx 스택 도입을 통한 I/O-bound 작업의 Non-blocking 처리 및 동시성 극대화
  • FFmpeg의 -c copy 옵션을 활용한 Lossless Muxing으로 재인코딩 없는 실시간 TS to MP4 컨테이너 변환
  • Vanilla JS 기반의 프론트엔드 설계를 통한 FCP 1초 미만의 초경량 사용자 경험 최적화

- HLS 스트림 추출 시 최상위 Bitrate 세그먼트를 우선 식별하는 재귀적 파싱 로직 검토 - I/O 중심의 API 요청이 많은 시스템에서 Synchronous 모델 대신 Asyncio 기반의 비동기 스택 채택 - 미디어 포맷 변환 시 재인코딩이 불필요한 경우 `-c copy` 플래그를 통한 리소스 최적화 적용 - 세션 만료가 빈번한 외부 API 연동 시 자동 복구 기능이 포함된 Session Pool 설계

원문 읽기