본문으로 바로가기

[프로토콜] RTMP 프로토콜

category 네트워크/프로토콜 2024. 7. 24. 00:27
728x90
반응형

스트리밍 관련 프로젝트를 해본분들은 들어보셨을겁니다.

 

최근에 스트리밍 관련 프로그램을 만들다보니 RTMP를 알게 되었고, 이 부분에 대해 정리해보겠습니다.

 

RTMP(Real Time Messaging Protocl) 이란 일반적으로 오디오, 비디오 등의 데이터 스트리밍을 위해 사용하는 프로토콜입니다.

 

HLS와 더불어 가장 많이 사용하는 것으로 알고 있습니다.

 

다음에 HLS에 대해 포스팅 하겠습니다.

 

많이 알고 계신 Adobe 회사에서 개발을 했습니다.

 

특징에 대해서 알아보겠습니다.

 

1. 라이브 방송에 사용

 

스트리밍을 가장 많이 사용하는 곳이 라이브 방송이기 때문에 유투브, 아프리카 등 이런 곳에서 사용합니다.

 

라이브 방송 프로그램을 사용하면 한번쯤 들어보셨을수도 있습니다.

 

또한, 프로그램에서 라이브 방송 사이트들의 URL을 선택할 수 있습니다.

 

실시간으로 데이터를 전송합니다.

 

 

2. TCP 프로토콜

 

일반적으로 미디어 같은 경우 RTP를 사용하며, UDP를 사용할 것 같지만, TCP를 사용합니다.

 

TCP를 사용하는 이유는 안정적인 연결을 위해서입니다.

 

예전 같은 경우는 네트워크 상황이 워낙 안좋지만, 요즘은 기술력이 발달하여 TCP로도 충분히 가능합니다.

 

 

3. 다양한 플레이어에서 사용 가능

 

대부분의 플레이어에서는 RTMP를 지원합니다.

 

그만큼 많이 사용한다는 뜻입니다.

 

 

4. 저지연성

 

라이브 스트리밍에서 가장 중요한 것이 지연여부일 수 있습니다.

 

보통 라이브 방송을 사용하는 사이트들은 방송사고를 위해 어느정도 지연 시간을 넣지만, 지연 없이 사용할 수 있습니다.

 

 

동작 방식은 일반 TCP와 비슷합니다.

 

RTMP는 데이터를 청크로 나누어서 전송합니다.

 

청크에는 헤더 정보이 들어있습니다.

 

수신받는 쪽에선느 헤더 정보로 데이터 스트림을 재조립하여 처리합니다.

 

TCP 연결 설정 -> 스트림 생성 -> 데이터 전송 방식입니다.

 

 

오늘 포스팅은 여기까지입니다.

 

감사합니다.

 

 

728x90
반응형