본문 바로가기

개발 상식

라이브 프로토콜 (RTMP VS WebRTC)

반응형
RTMP(저지연) WebRTC(실시간)
과거 플래시 기반 웹 브라우저 간에 플러그인의 도움 없이서로 통신할 수 있게 설계된 API
Real-Time Message Protocol Web Real-Time Communication
TCP기반 UDP 기반
서버 - 클라이언트 방식으로 동작하여, 라이브 스트리밍에서 인코딩 후 CDN에 배포하는 방식 중앙 서버 없이도 직접 통신할 수 있지만 NAT/방화벽 이슈로 TURN서버 필요
5초 미만 딜레이 300ms 미만 딜레이
유튜브, 트위치 등 라이브 스트리밍 구글 밋, 줌

 

RTMP

- 서버기반 스트리밍이라 인코딩 과정을 거친 후 전송합니다.

- 지연시간이 길어도 괜찮기 때문에 고압축률 설정이 가능합니다.

- TCP 기반이라 패킷 손실 없이 전송합니다.

 

WebRTC

- 실시간 전송이 목표이고 낮은 지연시간을 유지해야함

- 인코딩을 가볍게 처리

- UDP 기반이라 패킷 손실 가능성

 

RTMP + HLS 혼합 방식

대체로 라이브 스트리밍에서는 RTMP와 HLS 혼합 방식을 사용합니다.

송출은 RTMP를 사용하고 배포는 HLS를 사용하는 방식이죠.

이렇게 사용하는 이유는 어도비가 플래시를 공식 종료했기 때문이죠.

그렇다면 HLS만 사용하면 되지 않는가 싶은데요.

HLS가 HTTP 기반 세그먼트 전송이기 때문에 지연이 좀 있기 때문입니다.

반면, 수신할때는 HLS는 HTTP 라 호환성이 높고, ABR(Adaptive Bitrate)가 가능하고 여러 장점이 있기 때문에 혼합하는 방식을 대체로 사용합니다.

 

 

 

반응형