본문 바로가기
SWE/스트리밍

[Streaming][Multimedia] 스트리밍의 대표적인 프로토콜, RTSP란?

by S나라라2 2023. 7. 29.
반응형

 
스트리밍의 대표적인 프로토콜, RTSP에 대해 알아보자
 
 
RTSP(Real-Time Streaming Protocol)는 검증된 비디오 프로토콜이다. 두 엔드 포인트 간의 오디오/비디오 전송을 제어하고, 인터넷에서 지연 시간이 짧은 스트리밍 콘텐츠 전송을 용이하게 하는데 사용된다.
 
한 때 RTSP는 RTMP(Real-Time Messaging Protocol)와 함께 스트리밍 환경을 지배했었다. 요즘에는 더 이상 그렇지 않다. RTSP만 많은 장비와 CCTV(closed-circuit television) 설계에서 표준으로 남아있다. 그 이유는 단순하다: 여전히 IP카메라에서 선택한 프로토콜이기 때문이다.
 
이 기사에서 우리는 RTSP 사양, RTSP 스트리밍의 역사, 이 프로토콜을 사용하는 일반적인 workflow를 살펴볼 것이다.
 
 


What is a protocol?

프로토콜은 하나의 통신 시스템에서 다른 곳으로 어떻게 데이터가 이동하는지 관리하는 규칙을 제공한다. 예를 들면 http는 웹서버와 브라우저 간의 통신을 관리하여 웹 페이지 데이터와 하이퍼텍스트 링크가 월드와이드 웹에서 전송되는 방식을 정의한다.
 
스트리밍 프로토콜은 실시간으로 요청받은 스트르밍 컨텐츠의 전송을 처리한다. RTSP는 스트리밍 프로토콜 제품군을 구성하는 기본 기술이다. 이것은 소스와 스트리밍 서버간의 세션을 설정하고 유지하도록 설계되었다.
 

What is RTSP?

RTSP는 Pause, Play 기능을 통해 스트리밍 미디어 서버에게 명령을 내리는 데 사용되는 어플리케이션 계층 프로토콜이다. .. RTSP서버는 RTCP(Real-Time Control Protocol) 와 함께 RTP(Real-Time Protocol)를 활용하여 실제 스트리밍 데이터를 이동시킨다.
 
 
The official definition from a 1998 proposal of the standard states:

"The RTSP establishes and controls either a single or serveral time-synchronized streams of continuous media such as audio and video. It does not typically deliver the continuous streams itself, although interleaving of the continuos media stream with the control stream is possible. In other words, RTSP acts as a 'network remote control' for multimedia servers."

 
번역

"RTSP는 오디오, 비디오와 같은 시간 동기적인 연속 미디어 스트림을 설정하고 제어한다. 연속 미디어 스트림과 제어 스트림의 인터리빙이 가능하지만, 일반적으로 연속 스트림 자체를 전달하진 않는다. 즉, RTSP는 멀티미디어 서버를 위한 네트워크 리모컨처럼 동작한다."

 
사용자가 RTSP를 사용하여 IP 카메라에서 비디오 스트림을 시작하면, 장치는 스트리밍 서버(카메라)에게 RTSP 요청을 보낸다. 그러면 SETUP 프로세스를 시작한다. 그런 다음, RTP를 이용해 비디오와 오디오 데이터가 전달된다. 따라서 RTSP를 미디어 스트리밍을 위한 텔레비전 리모컨으로 생각할 수 있고, RTP는 브로드캐스트 역할을 한다.
 

RTSP : A Snapshot

- 오디오 코덱:
AAC, AAC-LC, HE-AAC+ v1 & v2, MP3, Speex, Opus, Vorbis

- 비디오 코덱:
H.265, H.264, VP9, VP8

- 플레이백 사양:
잘 사용되지 않는다.
(지원하는 곳: Quicktime player, 다른 RTSP/RTP 호환 플레이어, VideoLAN VLC 미디어 플레이어, 3Gpp 호환 모바일 장치)

- 이점:
지연 시간이 짧고 IP 카메라에서 무조건 사용된다.

- 단점:
체감 품질과 확장성이 좋지 않다.

- 지연:
2초

- 변형 포맷:
RTSP는 RTP, RTCP, RTSPS(RTSP over SSL/ Secure RTSP), 오래된 RTSP의 전체 스택을 설명한다.

 


RTSP 요청

RTSP는 아래의 명령어들을 사용한다. 보통 미디어 전송을 협상하고 제어할 때 client가 server에게 보낸다.

OPTIONS
DESCRIBE
ANNOUNCE
SETUP
PLAY
PAUSE
RECORD
TEARDOWN
REDIRECT

RTSP 다른 요청으로는, 'get parameter', 'set parameter', 'embedded(interleaved) binary data'가 있다.
 


RTSP 스트리밍의 역사

RTSP는 두 개의 회사(넷스케이프, 프로그레시브 네트워크(현재 RealNetworks))와 콜롬비아 대학에서 처음 개발하였다. 1998년 Internet Engineering Task Force에서 발표했다.
버전 2.0은 2016년에 발표되었다. 초기 버전에서 미디어 서버의 round-trip 통신을 줄였다.
 
HTTP 기반의 adaptive bitrate streaming 이 등장하기 전에는, RTSP와 RTMP가 인터넷 스트리밍에 지배적이었다. 그러나 둘 다 전용 서버를 필요로 하기 때문에, 큰 규모의 방송에는 적합하지 않았다.
 
따라서 RTSP는 이제 주로 contribution protocol로 사용된다. 대부분의 workflow는 미디어 서버를 활용하여 RTSP/RTP를 통해 전송된 스트림을 수집한 다음, 파일을 다시 패키징 하여 뷰어 장치(iphone, smart tv 등)로 전달한다.
 
SRT(Secure Reliable Transport)와 같은 차세대 대안은 오늘날 비디오 제공을 위해 RTSP와 직접 경쟁하고 있다. 그렇지만 아직까지는 RTSP가 감시 워크플로에서 IP 카메라의 사실상의 표준으로 사용되고 있다.
 


IP 카메라 스트리밍

위에서 강조했듯이, RTSP 프로토콜과 IP 카메라는 좋은 조합을 보여준다. 종종 미디어 서버는 IP 카메라에서 RTSP신호를 가져온다.
이러한 사용자 친화적인 스트리밍 디바이스는 별도의 인코더를 요구하지 않으며, 감시, 회의, 라이브 이벤트 제작에서 자주 사용된다.
 
실시간 감시를 위한 입증된 workflow 중 하나는 RTSP로 인코딩된 IP 카메라 스트림을 수집하고 이것을 WebRTP로 다시 압축하는 것이다. (1초 미만의 지연을 유지)
 


일반적인 RTSP workflow

RTSP는 last-mile 전송과 playback(egress)보다 비디오 제공(수집)에 더 자주사용되는 stateful 프로토콜이다. 안드로이드와 ios 장비는 rtsp호환 플레이어를 가지고 있지않다. 따라서 rtsp는 대부분 end to end 스트리밍에서는 거의 사용되지 않는다. 대신 대부분의 브로드캐스터는 RTSP서버를 활용하여 RTSP 스트림을 HLS와 같은 사용자 친화적인 형식으로 다시 패키징한다.
 
 

출처: https://www.wowza.com/blog/rtsp-the-real-time-streaming-protocol-explained

반응형