1. RTMP
Adobe의 독점 프로토콜이다. 플래시 기반의 서비스이다.
특징
- 대부분의 인코더가 RTMP를 이용해 동영상을 전송할 수 있어 영상 송출에 사용된다.
- 하지만 HTTP를 지원하지 않아 클라이언트에서 영상 재생시에는 호환성 문제가 있다.
장점
단점
- 플래시 기반의 서비스로 현재의 웹 브라우저에서 사용이 어렵다.
사용중인 서비스
- Facebook live, Youtube live, twitch 송출 등 대부분의 Live 영상 송출에 사용됨
2. HLS (Http Live Streaming)
애플에서 2009년 출시된 ABS(Adaptive Bitrate Streaming) 통신 프로토콜
기존 RTP에서는 HTTP 상에서 동작하지 않는다는 단점이 있었고, 주로 UDP를 통해 영상 데이터를 전송했다. 하지만 HLS와 mpeg-DASH이 등장하면서 구현 과정이 훨씬 편리해졌다!
특징
- 하나의 영상을 5~10초 간격의 영상 조각(.ts) 파일로 쪼개 전송한다.
- 영상의 구간별, 조건별 세그먼트 파일을 매핑해주는 매니페스트 파일(.m3u8)을 이용해 스트리밍이 진행된다.
- HTTP에서 작동한다 == 80포트를 사용한다 == 방화벽 문제를 겪지 않는다!
장점
- 모바일 기기, 브라우저에서의 호환성
- 클라이언트의 인터넷 환경에 따라 적합한 서비스를 제공할 수 있다.
- 많은 사용자가 접속하고, 1:N의 서비스(방송, 스트리밍 등) 에 적합하다.
단점
- 30초 이상의 딜레이 발생 (세그먼트로 쪼개는 과정이 필요하기 때문이다.)
- 애플 제품 외 (안드로이드, 크롬, 윈도우 브라우저 등) 에서는 플러그인 필요 (hls.js로 잘 구현되어 있다!)
사용중인 서비스
- Youtue 영상 스트리밍, 틱톡 라이브, 월드컵 경기 라이브 송출 등
- 대부분의 영상 시청을 위한 서비스에서는 HLS를 사용하는 것 같다.