실시간 스트리밍 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
실시간 스트리밍 프로토콜(RTSP)은 멀티미디어 재생을 제어하기 위한 프로토콜로, 1996년 RealNetworks, Netscape, 컬럼비아 대학교에서 개발되었다. HTTP와 유사한 구조를 가지지만, 상태를 유지하며, TCP 또는 UDP 포트 554번을 사용하여 클라이언트와 서버 간의 제어 메시지를 주고받는다. RTSP는 미디어 스트림 전송 자체를 담당하지 않으며, 일반적으로 RTP 및 RTCP를 함께 사용하여 스트리밍 데이터를 전송한다. RTSP 2.0은 2016년에 발표되었으며, 암호화를 위한 다양한 방법과 `rtsps://` URL을 정의한다. RTSP는 다양한 서버 및 클라이언트 소프트웨어에서 구현되었으며, IP 카메라, CCTV, 실시간 스트리밍 서비스 등 다양한 분야에서 활용된다.
더 읽어볼만한 페이지
- 응용 계층 프로토콜 - 실시간 전송 프로토콜
실시간 전송 프로토콜(RTP)은 스트리밍 미디어의 실시간 전송을 위해 설계된 프로토콜로, IP 네트워크에서 오디오/비디오 전송의 표준으로 사용되며, 멀티미디어 데이터 전송, 타임스탬프, 순서 제어, QoS 피드백 등을 제공한다. - 응용 계층 프로토콜 - D-Bus
D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다.
실시간 스트리밍 프로토콜 | |
---|---|
일반 정보 | |
목적 | 인터넷 스트리밍 |
개발자 | RealNetworks Netscape Columbia University |
날짜 | 1998년 4월 |
기반 | 해당 없음 |
영향 | 해당 없음 |
OSI 계층 | 응용 계층 (7) |
포트 | 554/TCP 554/UDP |
RFC | 2326 7826 |
하드웨어 | 해당 없음 |
2. 역사
리얼네트웍스, 넷스케이프[1], 컬럼비아 대학교[2]가 실시간 스트리밍 프로토콜(RTSP)을 개발하였다. 1996년 10월 넷스케이프와 프로그레시브 네트웍스가 IETF에 첫 번째 초안을 제출했고, 컬럼비아 대학교의 헤닝 슐츠린네가 1996년 12월 "RTSP՚" ("RTSP prime")를 제출했다.[3][4] 인터넷 기술위원회(IETF) 다자간 멀티미디어 세션 제어 워킹 그룹(MMUSIC WG)은 두 초안을 병합하여 표준화를 진행했고, 추가 초안을 발표하였다.[5][6] 1998년 RTSP 제안 표준이 RFC 2326으로 발표되었다.[7]
RTSP는 멀티미디어 재생을 제어하는 데 필요한 제어 시퀀스를 정의한다는 점에서 HTTP와 유사하지만, RTSP는 상태를 가지며 동시 세션을 추적하기 위해 식별자가 사용된다는 차이점이 있다. HTTP와 마찬가지로 RTSP는 종단 간 연결 유지를 위해 전송 제어 프로토콜(TCP)를 사용하며, 대부분의 RTSP 제어 메시지는 클라이언트에서 서버로 전송되지만 일부 명령은 반대 방향으로 전송될 수 있다.[7]
2016년 RTSP 2.0이 RFC 7826으로 발표되어 RTSP 1.0을 대체하였다. RTSP 2.0은 RTSP 1.0을 기반으로 하지만, 기본 버전 협상 메커니즘을 제외하고는 하위 호환되지 않으며, 제안 표준으로 남아있다.[8]
3. 기술적 특징
기본 RTSP 요청에는 OPTIONS 요청과 같은 일부 전형적인 HTTP 요청도 포함된다. RTSP는 전송 제어 프로토콜(TCP)와 사용자 데이터그램 프로토콜(UDP) 모두 554 포트를 기본 전송 계층 포트 번호로 사용하지만, UDP는 제어 요청에 거의 사용되지 않는다.[7]
RTSP는 음성(오디오), 영상(동영상, 비디오) 등의 멀티미디어 데이터를 포함하는 서버를 원격 조작하기 위한 프로토콜로, 재생, 정지, 기록(녹음) 등의 조작이 가능하다.
서버에서 클라이언트로의 데이터 전송(RTSP에서는 프레젠테이션이라고 함)에는 일반적으로 실시간 전송 프로토콜(RTP)이 사용되지만, 이에 국한되지는 않는다. RTSP에 의해 제어되는 데이터 흐름에는 "RTSP 세션"이 존재하지만, RTSP 자체에는 세션 개념이 없다. 하이퍼텍스트 전송 프로토콜(HTTP)과 유사하게 설계되었으며, TCP와 같이 높은 신뢰성을 가진 프로토콜 사용을 전제로 한다.
RTSP가 지원하는 주요 기능은 다음과 같다.
RTSP를 다루는 미디어 서버는 RTSP 세션의 상태를 관리해야 한다.
4. 프로토콜 명령어
RTSP는 HTTP와 유사하지만, 멀티미디어 재생 제어에 특화된 명령어를 사용한다는 점이 다르다. HTTP는 무상태형인 반면, RTSP는 상태형 프로토콜로 세션 유지를 위해 식별자를 사용한다. 대부분의 RTSP 제어 메시지는 클라이언트에서 서버로 전달되지만, 일부는 서버에서 클라이언트로 전송되기도 한다.
RTSP의 주요 명령어로는 OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, RECORD, ANNOUNCE, TEARDOWN, GET_PARAMETER, SET_PARAMETER, REDIRECT 등이 있다. OPTIONS 요청과 같이 일부 HTTP 요청도 사용 가능하다. RTSP는 기본적으로 TCP와 UDP 모두 554번 포트 번호를 사용하지만,[22] 제어 요청에는 주로 TCP가 사용된다. 각 명령어에 대한 자세한 내용은 하위 섹션을 참조하면 된다.
4. 1. OPTIONS
OPTIONS 요청은 서버가 어떤 요청 유형을 허용하는지 알려준다.[22] HTTP 요청에서도 사용 가능한 일반적인 요청 중 하나이다.```text
C->S: OPTIONS rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 1
Require: implicit-play
Proxy-Require: gzipped-messages
S->C: RTSP/1.0 200 OK
CSeq: 1
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
```
위 예시에서 `Public:` 헤더는 서버가 `DESCRIBE`, `SETUP`, `TEARDOWN`, `PLAY`, `PAUSE` 요청을 지원한다는 것을 나타낸다.
4. 2. DESCRIBE
DESCRIBE 요청은 RTSP(실시간 스트리밍 프로토콜) URL(Uniform Resource Locator)```
C->S: DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 2
S->C: RTSP/1.0 200 OK
CSeq: 2
Content-Base: rtsp://example.com/media.mp4
Content-Type: application/sdp
Content-Length: 460
m=video 0 RTP/AVP 96
a=control:streamid=0
a=range:npt=0-7.741000
a=length:npt=7.741000
a=rtpmap:96 MP4V-ES/5544
a=mimetype:string;"video/MP4V-ES"
a=AvgBitRate:integer;304018
a=StreamName:string;"hinted video track"
m=audio 0 RTP/AVP 97
a=control:streamid=1
a=range:npt=0-7.712000
a=length:npt=7.712000
a=rtpmap:97 mpeg4-generic/32000/2
a=mimetype:string;"audio/mpeg4-generic"
a=AvgBitRate:integer;65790
a=StreamName:string;"hinted audio track"
4. 3. SETUP
SETUP 요청은 단일 미디어 스트림이 어떻게 전송되어야 하는지를 규정한다. 이 요청은 PLAY 요청을 보내기 전에 수행되어야 한다. 이 요청에는 미디어 스트림 URL과 전송 지시자가 포함된다. 이 지시자에는 보통 RTP 데이터(오디오 또는 비디오)를 수신하기 위한 로컬 포트와 RTCP 데이터(메타 정보)를 위한 다른 포트가 포함된다.[22] 서버 응답은 일반적으로 선택된 매개변수를 확인하고, 서버가 선택한 포트와 같이 누락된 부분을 채운다. 집계 재생 요청을 보낼 수 있으려면 각 미디어 스트림을 SETUP을 사용하여 구성해야 한다.```text
C->S: SETUP rtsp://example.com/media.mp4/streamid=0 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=8000-8001
S->C: RTSP/1.0 200 OK
CSeq: 3
Transport: RTP/AVP;unicast;client_port=8000-8001;server_port=9000-9001;ssrc=1234ABCD
Session: 12345678
C->S: SETUP rtsp://example.com/media.mp4/streamid=1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=8002-8003
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 3
Transport: RTP/AVP;unicast;client_port=8002-8003;server_port=9002-9003;ssrc=1234ABCD
Session: 12345678
4. 4. PLAY
PLAY 요청은 하나 이상의 미디어 스트림을 재생하게 한다. 여러 PLAY 요청을 보내어 재생 요청을 쌓을 수 있다. URL은 애그리게이트 URL(모든 미디어 스트림 재생) 또는 단일 미디어 스트림 URL(해당 스트림만 재생)이 될 수 있다. 범위를 지정할 수 있는데, 범위를 지정하지 않으면 스트림은 처음부터 시작하여 끝까지 재생되거나, 스트림이 일시 중지된 경우 일시 중지된 지점부터 다시 시작된다.[22]```text
C->S: PLAY rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 4
Range: npt=5-20
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 4
Session: 12345678
RTP-Info: url=rtsp://example.com/media.mp4/streamid=0;seq=9810092;rtptime=3450012
4. 5. PAUSE
PAUSE 요청은 1개 또는 모든 미디어 스트림을 일시적으로 중지한다. 그러므로 PLAY 요청과 함께 나중에 이어서 재생할 수 있다. 이 요청에는 애그리게이트 URL 또는 미디어 스트림 URL이 포함된다. PAUSE 요청에 range(범위) 변수를 사용하여 일시 중지의 시점을 지정할 수 있다. 해당 범위 변수를 제외할 경우 즉시 무기한으로 일시 중지된다.[22]
C->S: PAUSE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 5
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 5
Session: 12345678
4. 6. RECORD
RECORD 메소드는 프레젠테이션 설명에 따라 일련의 미디어 데이터를 녹화한다.[22] 타임스탬프는 시작 시간/종료 시간(UTC)을 반영한다. 시간 범위를 지정하지 않으면 프레젠테이션 설명에 지정된 시작 또는 종료 시간을 사용하게 된다. 세션이 이미 시작된 경우 녹화는 즉시 시작된다. 서버는 요청 URI 또는 기타 URI를 통해 녹화된 데이터의 저장 여부를 결정한다. 서버가 요청 URI를 사용하지 않는 경우 응답은 201 처리되며 요청 상태를 기술하고 새로운 자원을 참조하는 엔티티, 그리고 Location 헤더를 포함하게 된다.[22]```
C->S: RECORD rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 6
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 6
Session: 12345678
4. 7. ANNOUNCE
ANNOUNCE 메소드는 두 가지 목적을 가진다.- 클라이언트에서 서버로 전송될 때, ANNOUNCE는 요청 URL로 식별되는 프레젠테이션 또는 미디어 객체의 설명을 서버에 게시한다.
- 서버에서 클라이언트로 전송될 때는, ANNOUNCE는 세션 설명을 실시간으로 업데이트한다. 새로운 미디어 스트림이 프레젠테이션에 추가될 경우(예: 라이브 프레젠테이션 중), 구성 요소를 삭제할 수 있도록 추가 구성 요소뿐만 아니라 전체 프레젠테이션 설명을 다시 보내야 한다.
```
C->S: ANNOUNCE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 7
Date: 23 Jan 1997 15:35:06 GMT
Session: 12345678
Content-Type: application/sdp
Content-Length: 332
v=0
o=mhandley 2890844526 2890845468 IN IP4 126.16.64.4
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e=mjh@isi.edu (Mark Handley)
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
m=audio 3456 RTP/AVP 0
m=video 2232 RTP/AVP 31
S->C: RTSP/1.0 200 OK
CSeq: 7
```[22]
4. 8. TEARDOWN
TEARDOWN 요청은 세션 종료를 위해 사용된다. 이 요청은 모든 미디어 스트림을 정지시키고 서버 상의 모든 세션 관련 데이터를 해제한다.[22]```
C->S: TEARDOWN rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 8
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 8
4. 9. GET_PARAMETER
GET_PARAMETER 요청은 URI에 지정된 프레젠테이션 또는 스트림의 매개변수 값을 가져온다. 응답 및 응답의 내용은 구현에 따라 달라진다. 본문이 없는 GET_PARAMETER는 클라이언트 또는 서버의 생존 여부("ping")를 테스트하는 데 사용될 수 있다.[22]
S->C: GET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 9
Content-Type: text/parameters
Session: 12345678
Content-Length: 15
packets_received
jitter
C->S: RTSP/1.0 200 OK
CSeq: 9
Content-Length: 46
Content-Type: text/parameters
packets_received: 10
jitter: 0.3838
4. 10. SET_PARAMETER
이 메소드는 URI로 지정된 프레젠테이션 또는 스트림의 변수값 설정을 요청한다.[22]
C->S: SET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 10
Content-length: 20
Content-type: text/parameters
barparam: barstuff
S->C: RTSP/1.0 451 Invalid Parameter
CSeq: 10
Content-length: 10
Content-type: text/parameters
barparam
4. 11. REDIRECT
REDIRECT 요청은 클라이언트에게 다른 서버 위치로 연결해야 함을 알린다. 여기에는 클라이언트가 해당 URL에 대한 요청을 발행해야 함을 나타내는 필수 헤더 Location이 포함된다. 또한 리디렉션이 적용되는 시점을 나타내는 매개변수 Range가 포함될 수 있다. 클라이언트가 이 URI에 대해 미디어를 계속 보내거나 받으려는 경우, 클라이언트는 현재 세션에 대한 TEARDOWN 요청과 지정된 호스트의 새 세션에 대한 SETUP 요청을 발행해야 한다.[22]```text
S->C: REDIRECT rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 11
Location: rtsp://bigserver.com:8001
Range: clock=19960213T143205Z-
4. 12. 임베디드 (인터리빙) 바이너리 데이터
특정 방화벽 설계 및 기타 상황으로 인해 서버가 RTSP 메서드와 스트림 데이터를 인터리빙해야 할 수 있다. 이러한 인터리빙은 클라이언트와 서버의 작동을 복잡하게 하고 추가 부담을 발생시키므로 일반적으로는 피해야 한다. 인터리빙된 바이너리 데이터는 RTSP가 TCP를 통해 전송되는 경우에만 사용해야 한다.[22] RTP 패킷과 같은 스트림 데이터는 ASCII 달러 기호(16진수 24), 1바이트 채널 식별자, 네트워크 바이트 순서의 2바이트 정수인 캡슐화된 바이너리 데이터의 길이로 캡슐화된다. 스트림 데이터는 CRLF 없이, 상위 계층 프로토콜 헤더를 포함하여 바로 뒤따른다. 각 $ 블록은 정확히 하나의 상위 계층 프로토콜 데이터 유닛(예: 하나의 RTP 패킷)을 포함한다.
C->S: SETUP rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/TCP;interleaved=0-1
S->C: RTSP/1.0 200 OK
CSeq: 3
Date: 05 Jun 1997 18:57:18 GMT
Transport: RTP/AVP/TCP;interleaved=0-1
Session: 12345678
C->S: PLAY rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 4
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 4
Session: 12345678
Date: 05 Jun 1997 18:59:15 GMT
RTP-Info: url=rtsp://example.com/media.mp4;seq=232433;rtptime=972948234
S->C: $\000{2 바이트 길이}{"길이" 바이트 데이터, RTP 헤더 포함}
S->C: $\000{2 바이트 길이}{"길이" 바이트 데이터, RTP 헤더 포함}
S->C: $\001{2 바이트 길이}{"길이" 바이트 RTCP 패킷}
5. RTSP over HTTP
RTSP over HTTP는 1999년 애플에 의해 정의되었으며, [https://web.archive.org/web/20240215060448/https://opensource.apple.com/source/QuickTimeStreamingServer/QuickTimeStreamingServer-412.42/Documentation/RTSP_Over_HTTP.pdf]에서 확인할 수 있다. 이는 RTP 비디오 및 오디오 데이터를 RTSP 명령 연결(RFC2326에 정의됨)에 교차 삽입한 다음, RTSP 명령 연결을 두 쌍의 HTTP 연결(하나는 장시간 실행되는 GET 연결이고 다른 하나는 장시간 실행되는 POST 연결이다)을 통해 전송한다.
이 방식은 ONVIF IP 카메라 표준에서도 사용되며, 보안 및 암호화된 비디오 및 오디오를 위해 HTTPS와 결합될 수 있다.
6. RTSP 암호화 및 RTSPS
RTSP 명령 메시지와 RTP 비디오 및 오디오 데이터를 암호화하는 데는 여러 가지 방법이 있다.
- '''RTSPS URL (rtsps:// URL 사용)''' - 이 방법은 TLS 소켓(기본 포트 322)을 사용하여 RTSP 클라이언트와 RTSP 서버 간에 암호화된 연결을 설정한다.[10] 비디오 및 오디오는 다음 두 가지 방법 중 하나로 전송될 수 있다.
- '''TCP 비디오/오디오''' - RTP 비디오 및 오디오는 이미 암호화된 TLS 연결을 통해 RTSP 명령과 번갈아 전송된다.
- '''UDP 및 멀티캐스트-UDP 비디오/오디오''' - RTP 비디오 및 오디오는 보안 RTP(SRTP) 프로토콜을 사용하여 암호화되어 RTSPS TLS 연결과 병렬로 전송된다.
- '''HTTPS를 통한 RTSP''' - 이 방법은 RTP 비디오 및 오디오 데이터를 RTSP 명령 연결에 인터리빙한 다음 암호화된 HTTPS 연결 쌍을 통해 RTSP 명령 연결을 전송한다. 기본적으로 포트 443을 사용한다.
IANA는 RTSPS에 rtsps:// URL 접두사와 포트 322를 예약했다.[10] 2024년 9월 현재, HTTPS를 통한 RTSP는 여러 ONVIF IP 카메라에서 구현되었으며 RTSPS(rtsps:// URL 사용)는 Axis 및 Bosch CCTV 카메라,[11] FFmpeg, GStreamer, MediaMTX,[12] Ant Media Server,[13] 및 SharpRTSP에서 구현되었다.[14]
7. 속도 적응 (Rate Adaptation)
RTP와 RTCP를 사용하는 RTSP는 네트워크 환경에 따라 스트리밍 속도를 조절하는 속도 적응(Rate adaptation) 구현을 허용한다.[23][15]
8. 활용 사례
RTSP는 주로 IP 카메라와 CCTV 시스템에서 실시간 영상 감시 및 녹화에 활용된다. 사용자는 RTSP를 통해 원격으로 카메라를 제어하고, 실시간 영상을 확인하거나 녹화된 영상을 재생할 수 있다.
대한민국에서는 공공 와이파이 환경에서 RTSP 스트리밍 서비스를 지원하여 사용자들이 공공장소에서도 끊김 없는 영상 콘텐츠를 즐길 수 있도록 하는 정책이 더불어민주당 주도로 추진되고 있다.
9. 구현체
RTSP를 지원하는 주요 서버 및 클라이언트 소프트웨어는 다음과 같다.
구분 | 소프트웨어 | 설명 |
---|---|---|
서버 | 다윈 스트리밍 서버 | 애플이 관리하는 퀵타임 스트리밍 서버의 오픈 소스 버전이다.[24] |
Erlyvideo | RTSP 클라이언트 기능과 다른 프로토콜로 비디오를 재스트리밍하는 기능이 있다. | |
Feng | RFC 준수에 초점을 둔 스트리밍 서버이다. | |
GStreamer 기반 RTSP 서버 및 클라이언트 | ||
헬릭스 DNA 서버 | 리얼네트웍스의 스트리밍 서버로, 오픈 소스 및 사유 버전이 모두 존재한다. | |
헬릭스 유니버셜 서버 | 리얼네트웍스의 상용 스트리밍 서버로, RTSP, RTMP, iOS, 실버라이트, HTTP 스트리밍 미디어 클라이언트를 지원한다. | |
LEAD 테크놀로지스의 LEADTOOLS 미디어 스트리밍 서버 SDK | RTSP/RTP, RTSP/RTP (MPEG-2 Transport), RTSP/RTP over HTTP를 지원한다. | |
LIVE555 라이브미디어 / openRTSP | VLC와 엠플레이어 등에서 사용되는 오픈 소스 C++ 서버 및 클라이언트 라이브러리이다. | |
Managed Media Aggregation | .NET C# RFC 준수 RTSP 구현체이다. | |
님블 스트리머 | TCP 인터리빙 재생 출력과 함께 RTSP pull 및 announce 입력을 지원한다. | |
pvServer | 과거 이름은 PacketVideo Streaming Server로, 알카텔-루센트의 스트리밍 서버 제품이다. | |
퀵타임 스트리밍 서버 | 맥 OS X 서버에 기본 포함되는 애플의 클로즈드 소스 스트리밍 서버이다. | |
SharpRTSP | RTSP 클라이언트, RTSP 서버를 빌드하고 RTP 데이터 스트림을 관리하기 위한 오픈 소스 C# RTSP 라이브러리이다. | |
TV 서버(TV Server) | Edgeware의 스트리밍 서버 제품이다. (소프트웨어, 하드웨어 버전) RTSP/RTP, HTTP, HTTPS (HLS, MSS, MPEG-DASH)용 멀티 포맷 스트리밍을 지원한다. | |
ViaMotion | Anevia의 주문형 비디오(VOD)용 내장 RTSP 서버이다. | |
VideoLAN | 오픈 소스 미디어 플레이어 및 스트리밍 서버이다. | |
VX30 | Maui X-Stream의 스트리밍 비디오 서버 및 임베디드 자바 클라이언트이다. | |
윈도우 미디어 서비스 | [http://msdn.microsoft.com/en-us/library/cc245238.aspx 윈도우 미디어 확장 기능]과 함께 수정된 RTSP를 사용하는, 과거에 윈도우 서버에 포함된 마이크로소프트의 스트리밍 서버이다. | |
Wowza Streaming Engine | RTSP/RTP, RTMP, MPEG-TS, ICY, HTTP (HTTP 라이브 스트리밍, HTTP 동적 스트리밍, 스무스 스트리밍, MPEG-DASH), WebRTC용 멀티 포맷 스트리밍 서버이다. | |
제논 스트리밍 서버(Xenon Streaming Server) | Vidiator 테크놀로지(미국)의 모바일 스트리밍 서버이다. | |
클라이언트 | 아스트라[25] | |
FFmpeg[26] | ||
GStreamer | ||
제트오디오 | ||
LIVE555 라이브미디어 / openRTSP | VLC와 엠플레이어 등에서 사용되는 오픈 소스 C++ 서버 및 클라이언트 라이브러리이다. | |
미디어 플레이어 클래식 | ||
엠플레이어 | ||
MythTV (Freebox를 통해) | ||
omxplayer | ||
퀵타임 | ||
리얼플레이어 | ||
SeeStreamSharp(https://gitlab.com/jesnil/SeeStreamSharp/wikis/home) | ISO 베이스 미디어 파일 포맷에 대한 미디어 스트림 녹화를 구현하는 RTSP 클라이언트. (오픈 소스, .NET 기반, 태스크 기반의 비동기 메소드 호출) | |
스카이프 | ||
VLC 미디어 플레이어 | ||
기타 | 유튜브, 앤트 미디어 서버, 오븐미디어엔진, Motion, 스포티파이, 윈앰프, 윈도우 미디어 플레이어, xine |
9. 1. 서버
- 다윈 스트리밍 서버(Darwin Streaming Server): 애플이 관리하는 퀵타임 스트리밍 서버의 오픈 소스 버전이다.[24]
- Erlyvideo: RTSP 클라이언트가 있으며 다른 프로토콜로 비디오를 재스트리밍할 수 있다.
- Feng: RFC 준수에 초점을 둔 스트리밍 서버이다.
- GStreamer 기반 RTSP 서버 및 클라이언트.
- 헬릭스 DNA 서버(Helix DNA Server): 리얼네트웍스의 스트리밍 서버로, 오픈 소스 및 사유 버전이 모두 존재한다.
- 헬릭스 유니버셜 서버(Helix Universal Server): 리얼네트웍스의 상용 스트리밍 서버로, RTSP, RTMP, iOS, 실버라이트, HTTP 스트리밍 미디어 클라이언트를 지원한다.
- LEAD 테크놀로지스의 LEADTOOLS 미디어 스트리밍 서버 SDK: RTSP/RTP, RTSP/RTP (MPEG-2 Transport), RTSP/RTP over HTTP를 지원한다.
- LIVE555 라이브미디어 / openRTSP: VLC와 엠플레이어 등 잘 알려진 클라이언트에 사용되는 오픈 소스 C++ 서버 및 클라이언트 라이브러리이다.
- Managed Media Aggregation: .NET C# RFC 준수 RTSP 구현체이다.
- 님블 스트리머(Nimble Streamer): TCP 인터리빙 재생 출력과 함께 RTSP pull 및 announce 입력을 지원한다.
- pvServer: 과거 이름은 PacketVideo Streaming Server로, 알카텔-루센트의 스트리밍 서버 제품이다.
- 퀵타임 스트리밍 서버(QuickTime Streaming Server): 맥 OS X 서버에 기본 포함되는 애플의 클로즈드 소스 스트리밍 서버이다.
- SharpRTSP: RTSP 클라이언트, RTSP 서버를 빌드하고 RTP 데이터 스트림을 관리하기 위한 오픈 소스 C# RTSP 라이브러리이다.
- TV 서버(TV Server): RTSP/RTP, HTTP, HTTPS (HLS, MSS, MPEG-DASH)용 멀티 포맷 스트리밍 서버이다. Edgeware의 스트리밍 서버 제품이다. (소프트웨어, 하드웨어 버전)
- ViaMotion: Anevia의 주문형 비디오(VOD)용 내장 RTSP 서버이다.
- VideoLAN: 오픈 소스 미디어 플레이어 및 스트리밍 서버이다.
- VX30: Maui X-Stream의 스트리밍 비디오 서버 및 임베디드 자바 클라이언트이다.
- 윈도우 미디어 서비스(Windows Media Services): [http://msdn.microsoft.com/en-us/library/cc245238.aspx 윈도우 미디어 확장 기능]과 함께 수정된 RTSP를 사용하는, 과거에 윈도우 서버에 포함된 마이크로소프트의 스트리밍 서버이다.
- Wowza Streaming Engine: RTSP/RTP, RTMP, MPEG-TS, ICY, HTTP (HTTP 라이브 스트리밍, HTTP 동적 스트리밍, 스무스 스트리밍, MPEG-DASH), WebRTC용 멀티 포맷 스트리밍 서버이다.
- 제논 스트리밍 서버(Xenon Streaming Server): Vidiator 테크놀로지(미국)의 모바일 스트리밍 서버이다.
- 유튜브: 데스크톱에서 모바일 HTTPS 버전을 통해 사이트를 볼 때 사용 가능한 스트리밍 옵션이다.
- 앤트 미디어 서버(Ant Media Server): 커뮤니티 버전[16]은 RTSP/S 소스에서 가져오기를 지원하며 HLS를 사용하여 라이브 스트리밍하거나 MP4로 녹화할 수 있다. 엔터프라이즈 버전은 RTSP를 WebRTC로 변환하여 종단 간 대기 시간을 약 200ms~500ms로 줄일 수 있다.
- 오븐미디어엔진(OvenMediaEngine)은 RTSP 푸시 입력을 지원하는 오픈 소스 저지연 스트리밍 서버이다.
- Motion: 리눅스용 무료 CCTV 소프트웨어 애플리케이션이다.
9. 2. 클라이언트
- 아스트라[25]
- FFmpeg[26]
- GStreamer
- 제트오디오
- LIVE555 라이브미디어 / openRTSP: VLC와 엠플레이어 등에서 사용되는 오픈 소스 C++ 서버 및 클라이언트 라이브러리이다.
- 미디어 플레이어 클래식
- 엠플레이어
- MythTV (Freebox를 통해)
- omxplayer
- 퀵타임
- 리얼플레이어
- SeeStreamSharp(https://gitlab.com/jesnil/SeeStreamSharp/wikis/home): ISO 베이스 미디어 파일 포맷에 대한 미디어 스트림 녹화를 구현하는 RTSP 클라이언트. (오픈 소스, .NET 기반, 태스크 기반의 비동기 메소드 호출)
- 스카이프
- 스포티파이
- VLC 미디어 플레이어
- 윈앰프
- 윈도우 미디어 플레이어
- xine
참조
[1]
서적
InfoWorld
https://books.google[...]
InfoWorld Media Group, Inc.
1998-03-02
[2]
서적
Handbook of Emerging Communications Technologies: The Next Decade
https://books.google[...]
CRC Press
[3]
뉴스
Real Time Streaming Protocol (RTSP)
https://tools.ietf.o[...]
2021-02-23
[4]
뉴스
RTSP prime
http://www.cs.columb[...]
Columbia University
1996-12
[5]
뉴스
Real Time Streaming Protocol (RTSP) (draft-ietf-mmusic-rtsp-01.txt)
https://tools.ietf.o[...]
2021-02-23
[6]
뉴스
Real Time Streaming Protocol (RTSP) (draft-ietf-mmusic-rtsp-08.txt)
https://tools.ietf.o[...]
2021-02-23
[7]
간행물
Real Time Streaming Protocol (RTSP)
IETF
1998
[8]
간행물
Real-Time Streaming Protocol Version 2.0
https://tools.ietf.o[...]
2021-02-23
[9]
웹사이트
Developer - QuickTime - Letters from the Ice Floe
https://developer.ap[...]
2024-09-22
[10]
웹사이트
Service Name and Transport Protocol Port Number Registry
https://www.iana.org[...]
[11]
웹사이트
Secure RTSP streaming - SRTP/RTSPS
https://www.ipcamliv[...]
[12]
Github
MediaMTX
https://github.com/b[...]
[13]
Github
Ant Media Server Community
https://github.com/a[...]
[14]
웹사이트
Ngraziano/SharpRTSP
https://github.com/n[...]
[15]
논문
User Centric Media
[16]
간행물
ant-media/Ant-Media-Server
https://github.com/a[...]
Ant Media
2024-12-13
[17]
웹사이트
YouTube Mobile A Bust! (Getting 3GP/RTSP to work on WM5)
https://chrisduke.tv[...]
2007-06-23
[18]
문서
cURL — Changes
http://curl.haxx.se/[...]
[19]
웹사이트
FFmpeg Documentation
http://ffmpeg.org/ff[...]
The FFmpeg project
2012-09-11
[20]
서적
InfoWorld
https://books.google[...]
InfoWorld Media Group, Inc.
1998-03-02
[21]
서적
Handbook of Emerging Communications Technologies: The Next Decade
https://books.google[...]
CRC Press
[22]
간행물
Real Time Streaming Protocol (RTSP)
IETF
1998
[23]
간행물
Rate Adaption Techniques for WebTV
[24]
웹사이트
erlyvideo website
http://erlyvideo.org[...]
[25]
문서
cURL — Changes
http://curl.haxx.se/[...]
[26]
웹인용
FFmpeg Documentation
http://ffmpeg.org/ff[...]
The FFmpeg project
2012-09-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com