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를 사용하는 것 같다.
3. mpeg-DASH (Dynamic Adaptive Streaming over HTTP)
MPEG를 통해 2011년 출시된 국제 표준이다. 애플을 제외한 다른 기업,서비스에서 적용된다.
특징
- HLS와 거의 유사하다
- .m3u8 대신 MPD 파일(xml 형식)을 사용한다.
장점
단점
- HLS와 동일하게 , 30초 이상의 딜레이 발생
- 플러그인이 필요하다 (dash.js)
4. webRTC
구글의 행아웃 개발팀에서 오픈소스로 공개되었다. 실시간 화상 대화를 목적으로 만들어졌으나, 그 외에도 다양한 어플리케이션에 활용 가능하다.
특징
- 서버를 최대한 거치지 않는 P2P(Peer-to-Peer Network) 통신 표준
- 시그널링 서버와 릴레이 서버를 통해 클라이언트 간에 연결이 이루어지도록 돕는다
- 1:1, 1:N, N:N 가능
- 시간 지연 없이 사용해야 하는 서비스에 적합
장점
- 0.5초 미만의 딜레이
- 브라우저 호환성(크롬, 파이어폭스 등)
단점
- 고화질 구현에 어려움
- P2P 기술이므로 매우 많은 접속자에게 영상 송출하는 서비스에는 적합하지 않다. (1:N 스트리밍 등)
사용중인 서비스
- 클럽하우스, Azar, 스푼, Hopin, 하쿠나라이브, GatherTown
지연시간이 적은 서비스에서 유리하지만, 클라이언트 간 직접적으로 통신이 이뤄지므로 클라이언트 수가 적은 서비스(1:1, 소수의 화상 회의 등)에서 보다 유리하다.
Case Study
1. 우아한형제들 배민 쇼핑라이브
- 미디어서비스
- RTMP(송출) + HLS(스트리밍)
- 파이프라인 - AWS Elemental Medialive
- 영상 편집, 판매 관련 서비스
- 영상 구간편집 기능
- 상품 노출 순서 변경
- 방송 정보 변경
2. 카카오게임즈
- WebRTC 를 이용해 컴퓨터 게임을 원격,모바일로 실행할 수 있는 어플리케이션
- 모바일 → 데스크탑 : 휴대폰의 게임 조작 데이터 (방향키, 버튼 클릭 등) 전송
- 데스크탑 → 모바일 : 게임 화면, 오디오 전송
- 영상 데이터가 아닌 게임콘솔 데이터를 전송하기 위해 WebRTC를 사용하였다는 점이 흥미로웠다.
WebRTC 기반 게임 리모트 플레이: 실시간 커뮤니케이션 서비스를 위한 WebRTC / if(kakao)2022
📚참고문헌
- ZOOM
- 우아한형제들 배민쇼핑라이브
- naver Series On
- Kakao i ConnectLive - WEBRTC
- Kakao Games
- **스트리밍 프로토콜**
- HLS, RTMP
- RTSP, RTMP, SRT