<aside>
<img src="/icons/bookmark_green.svg" alt="/icons/bookmark_green.svg" width="40px" />
목차
</aside>
🤔 학습 이유
서비스의 레퍼런스로 Zoom과 치지직 등 여러 스트리밍 서비스의 동작원리를 조사하던 중, 각 서비스별로 서로 다른 프로토콜을 사용하는 것을 발견할 수 있었다.
영상 송출에 사용되는 프로토콜을 조사하고 우리 서비스에 적합한 프로토콜을 선정하고자 한다!
- 동영상 스트리밍 처리 프로토콜
- HLS - 지연시간이 높지만 호환성이 좋음 (치지직) - 민지, 영길
- 왜 다른 프로토콜에 비해 지연시간이 길까?
- 어떻게 지연시간을 낮출 수 있을까?
- WebRTC - 지연시간이 낮지만 P2P에 적합 (구글미트) - 창현
- RTMP - 지연시간 낮음 (트위치) - 준서, 지수
- Dynamic Adapltive Streaming over HTTP
- SRT
- RTSP
1️⃣ RTSP (Real Time Streaming Protocol)
스트리밍의 시작이라고 말할 수 있다. 1996년 등장하였으며 RTSP가 등장 전 영상, 음악 등 멀티미디어 정보를 완전히 다운로드한 후 시청할 수 있었음.
다만 오래된 기술이라 화질 저하, 미디어 서버 운영에 대한 높은 난이도 등으로 도태되고 있는 실정.
- 애플은 HLS가 개발되기 이전에 RTSP 기반의 QTSS로 비디오와 오디오를 처리했었음
- 하지만 QTSS가 애플 생태계에서만 최적화가 되어있었기 때문에 호환성 이유가 있었음
- RTSP는 HTTP 기반이 아닌 TCP, UDP 사용
→ 네트워크 상태나 방화벽 문제로 인해 HTTP보다 호환성 낮음
- CCTV에서 사용하고 있는 프로토콜
스트리머 → rtmp → 서버 → hls → 클라이언트
2️⃣ HLS (Hypertext Live Streaming)
참고자료
https://medium.com/@cwh./동영상-안끊기고-보는법-feat-ll-hls-a6a0c453b21f
https://medium.com/@delivalue100/hls-http-live-streaming-4fb1d2992d57
왜 만들어졌을까? feat. RTSP
-
RTSP는 고정된 비트레이트로 콘텐츠 스트리밍에 최적화
- 고정 비트레이트의 경우 한가지 속도로만 데이터를 전송하다 보니 네트워크 상태가 변할 때에도 동일한 비트레이트로 스트리밍을 유지해야한다는 문제가 있음
⇒ 따라서 호환성이 높은 HTTP를 기반으로, 네트워크 상태에 따라 비디오 품질을 실시간으로 조정 가능한 가변 비트레이트 기능까지 도입된 것이 HLS
동작 원리 이해하기
- HTTP기반의 단방향 미디어 스트리밍 프로토콜
- 일반 웹서버 + CDN을 활용해 콘텐츠 배포
- [비디오 → HTTP 파일 조각으로 나눔 → 전송 →] 재생