동영상 적응형 스트리밍 프로토콜(HLS) 제공 - boostcampwm2023/and01-SnapPoint GitHub Wiki
비동기 메세지 큐 기반 Adaptive Streaming 처리 인스턴스 구현
Why? 이런 이유로 수행했어요.
- 불안정한 모바일 네트워크 환경에서 동영상 미디어를 효율적으로 제공하기 위해, 네트워크 환경에 맞춰 다양한 동영상 Segment를 보여주는 Adaptive Streaming을 구현하고자 했어요.
So: 이렇게 접근했어요.
ffmpeg을 사용해 비디오를 여러 화질로 트랜스코딩 하고,HLS스트리밍을 지원하는 형태로 Cloud로 업로드 했어요.Message Broker를 이용해 각 작업을 해상도 별로 분배해, 효율적으로 CPU 자원을 사용할 수 있도록 설계했어요.
Result: 결과는 다음과 같아요.
- Message Broker 덕분에 각 모듈(파일, 미디어)의 결합도가 낮아져 작업을 병렬로 처리할 수 있게 되었어요.
- 미디어 서버에 Auto-Scaling을 적용해 여러 Instance에 미디어 처리 작업의 부하를 분산했어요.
- 미디어 처리 작업을 약 10분에서 5분으로 단축하고, CPU 부하를 70%에서 41%로 해소했어요.