본문으로 바로가기
반응형

최근 들어 스트리밍 미디어 서버 쪽 개발을 하고있습니다.

그때 사용하는 프로토콜이 RTSP입니다.

RTSP는 스트리밍 미디어 서버를 제어하기 위한 제어 프로토콜 중 하나입니다.

RTSP 클라이언트가 RTSP 서버에게 명령을 보내어서 스트림을 시작/정지/일시정지/재생 등을 할 수 있도록 합니다.

RTP는 아래와 같은 특징이 있습니다.

1. 스트림을 제어

시작/정지/일시정지/재생 등의 명령어를 제공합니다.

2. 실시간으로 데이터를 전송

스트리밍에서는 주로 오디오와 비디오 데이터를 전송합니다.

3. 네트워크 효율성

네트워크의 대역폭을 효율적으로 사용하게 됩니다.

4. 다양한 미디어 형식 제공

오디오/비디오의 여러가지 코덱을 지원합니다.


이번에는 RTSP 메시지 포맷에 대해 알아보겠습니다.

일반적으로 Request Message와 Response Message가 있습니다.

1. Request Message

요청의 경우 클라이언트가 서버로 송신하는 메시지입니다.
-----------------------------------------------------------------------------
<Method> <Request-URI> RTSP/<Version>
<Header>: <Header-Value>
...
<Header>: <Header-Value>

<Body>
-----------------------------------------------------------------------------

Method : 클라이언트가 수행하고자 하는 동작

메소드는 OPTIONS, ANNOUNCE, SETUP, DESCRIBE, RECORD, PLAY, PAUSE, TEARDOWN등이 있습니다.

Request-URI : 요청을 한 대상, 즉, 클라이언트쪽의 리소스 식별자

Version : RTSP 버전

Header : RTSP 헤더

Body : 본문 내용

ex)
-----------------------------------------------------------------------------
OPTIONS rtsp://10.10.10.10:1935/a/b RTSP/1.0
CSeq: 1

SETUP rtsp://10.10.10.10:1935/a/b/streamid=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
CSeq: 3
Session: c2e9f7e63f60b9d1b19ff13836b39be7_test
-----------------------------------------------------------------------------

2. Response Message
-----------------------------------------------------------------------------
RTSP/<Version> <Status-Code> <Reason-Phrase>
<Header>: <Header-Value>
...
<Header>: <Header-Value>

<Body>
-----------------------------------------------------------------------------

Version : RTSP 버전

Status-Code : 요청에 대한 결과 상태
(200, 403, 404 등)

Reason-Phrase : Status-Code의 의미

Header : RTSP 헤더

Body : 본문 내용

ex)
-----------------------------------------------------------------------------
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, 07 Aug 2024, 05:48:00 GMT
Session: c2e9f7e63f60b9d1b19ff13836b39be7_test
-----------------------------------------------------------------------------

RTSP의 자세한 내용은 아래를 참고하시기 바랍니다.
https://www.rfc-editor.org/rfc/rfc2326.html

오늘 포스팅은 여기까지 하겠습니다.

반응형