우당탕탕~ 영상 서비스 개발기 2탄 : 인코더와 라이브 서비스
두줄요약
영상 인코딩·패키징·CDN 파이프라인과 자막 기반 채팅 다시보기, Timed Metadata 투표를 소개했습니다. 라이브 장애의 HOL 블로킹 원인을 분석하고 이미지 캐시·HTTP/2로 개선했습니다.
구조와 흐름
- 원본 영상의 다중 해상도 트랜스코딩, 세그먼트 패키징, CDN 배포 기반 스트리밍 파이프라인
- Airflow DAG로 트랜스코딩·패키징 작업 제어와 태스크별 로그·데이터 입출력 모니터링
- HLS/DASH/clean MP4 패키징과 자막 파일 기반 채팅 다시보기 제공
선택 이유
- bitrate-VMAF 가중치 기반 인코딩 옵션 선정으로 화질·용량·대역폭 비용 균형화
- 채팅 JSON을 VTT 자막 세그먼트로 변환해 플레이어 구현 부담 완화와 CDN 캐시 활용
- HLS TS의 ID3v2 Timed Metadata 주입으로 사용자별 동일 재생 구간의 라이브 투표 노출
성능/운영 포인트
- Kubernetes 리소스 점유율 기반 오토스케일링의 시점 한계와 Custom Metrics Server 개선 계획
- Flutter 기반 통합 채팅 페이지와 라이브 지표 스코어보드의 단기간 운영 도구 구축
- HTTP 기반 라이브의 약 25초 End-to-End 지연과 저지연 스트리밍 연구 방향
주의할 점
- HTTP/1.1 프로필 이미지 요청의 HOL 블로킹이 채팅 급증 상황에서 영상 재생까지 영향
- 이미지 최적화·HTTP/2 지원 캐시 서버 도입과 플레이어 이미지 URL 변경으로 장애 해소



