2010-11-29 15 views
34

스트리밍 서버를 개발하려고하는데 RTSP (예제 URL : rtsp://192.168.0.184/myvideo.mpg) 또는 RTP (예 : url : rtp://192.168.0.184)을 통해 다음과 같은 질문을합니다.스트리밍 서버의 RTP 또는 RTSP의 차이점은 무엇입니까?

내가 이미 알고있는 것처럼, RTSP 서버는 주로 이미 존재하는 파일 즉, 라이브가 아닌 파일의 스트리밍에 주로 사용됩니다. RTP 서버가 브로드 캐스트하는 데 사용됩니다.

내가 틀렸다면 누군가가 나를 바로 잡습니다. 맞습니까?

컴퓨터 화면에서 스트리밍으로 방송되는 시간에 표시되는 라이브 콘텐츠를 브로드 캐스트하기 위해 서버를 개발하고 싶습니다.

+1

또한 애플의 오픈 소스 Darwin Streaming Server (기존 솔루션으로는 충족되지 않는 맞춤 요구 사항이없는 경우)을 다시 만들지 않아도됩니다. –

+0

@ JP19 Windows에서 작동합니까? – Searush

+0

은 RTP RUL 권한입니까? 포트 번호를 지정해야합니까? –

답변

73

뭔가 잘못되었습니다 ... RTSP은 실시간 스트리밍 프로토콜입니다. 의미, 당신은 실시간으로 원하는 것을 스트리밍 할 수 있습니다. 따라서 라이브 콘텐츠를 스트리밍하는 데 사용할 수 있습니다 (비디오, 오디오, 텍스트, 프레젠테이션 ...). RTP은 RTSP를 통해 협상 된 미디어 데이터를 전송하는 데 사용되는 전송 프로토콜입니다.

RTP를 사용하여 RTP를 통한 미디어 전송을 제어합니다. 스트림을 설정, 재생, 일시 정지, 분해하는 데 사용합니다 ...

URL이 요청 될 때 서버가 스트리밍을 시작하게하려면 일종의 RTP 전용 서버를 구현할 수 있습니다. 그러나 더 많은 제어가 필요하고 라이브 비디오를 스트리밍하는 경우 SDP 및 기타 중요한 디코딩 데이터를 전송하므로 RTSP를 사용해야합니다.

내가 여기 링크 된 문서를 읽으십시오, 그들은 좋은 출발점입니다.

+0

: 설명 해 주셔서 감사합니다. J2Me 앱에서 오디오를 스트리밍하려고하는데 프로토콜에 대한 새로운 기능이 있습니다. 우리가 RTP 서버에 RTSP 요청을 보낼 수 있는지 알고 싶습니다. (아마도 클라이언트 응용 프로그램에서 포트 번호를 변경해야 할 것입니다.) 'RTP 전용 서버를 구현할 수 있습니다.'라는 말은 무엇입니까? rtp, rtcp 모두 처리 할 수 ​​있습니까? 테스트를 위해 로컬 시스템에서 사용할 수있는 서버 (rtp, rtcp)는 무엇입니까? –

+0

@Cipi,하지만 컴퓨터 스트림을 만들기 위해 뭔가 (rtp 서버, 도구, 프로그램 등의 smtg)를 사용해야합니까? 내 말은 스트리밍을 원한다면 다음과 같은 오류가 발생합니다. http://stackoverflow.com/questions/12007882/ffmpeg-rtp-streaming-error – Searush

+1

Cipi : 실제로 라이브 스트림을 일시 중지 할 수 있는지 여부를 알고 싶을뿐입니다. 다시 치다. –

4

나는 그것이 정확하다고 생각한다. RTSP는 내부적으로 RTP를 사용할 수 있습니다.

+0

대부분의 경우 맞습니다. 프로토콜에서 Rtp를 대체 할 수있는 경우가 있습니다 ..... – Jay

8

일부 기본 :

RTSP 서버는 죽은 소스뿐만 아니라 라이브 소스에 사용될 수 있습니다. RTSP 프로토콜은 VCR 리모컨과 같이 명령을 제공하며 기능은 구현에 따라 다릅니다.

RTP는 오디오 및 비디오를 실시간으로 전송하는 데 사용되는 실시간 프로토콜입니다. 사용 된 전송은 전송 주소 및 포트에 따라 유니 캐스트, 멀티 캐스트 또는 브로드 캐스트 일 수 있습니다. 당신이 당신이 (모두 RTSP 필요 다음 스트리밍 서버 방송 원하는 경우 수송 외에 RTP는 귀하의 경우에는 패킷 재정렬, 지터 제어, QoS를, 립싱크에 대한 지원 .....

처럼 당신을 위해 많은 일을한다 제어)뿐만 아니라 RTP (방송 오디오 및 비디오)는, RTSP는 전혀 스트림을 전송하지 않습니다 live555

12

AFAIK에서 제공하는 샘플 코드를 통해 갈 수와

시작하려면, 그냥 아웃 외입니다 PLAY 및 STOP과 같은 기능을 가진 대역 제어 프로토콜.

원시 UDP 또는 RTP over UDP는 원시 TCP 또는 HTTP over TCP와 같은 스트림의 전송 프로토콜입니다.

하면 주어진 전송 프로토콜을 통해 특정 프로그램을 스트리밍 할 수 있으려면,이캡슐화 방법은 컨테이너 형식에 대해 정의한다. 예를 들어 TS 컨테이너는 UDP를 통해 전송 될 수 있지만 Matroska는 전송할 수 없습니다.

거의 모든 것이 TCP를 통해 전송 될 수 있습니다.

(코덱 당신은 또한 사용 않는 사실은 당신이 사용할 수있는 컨테이너 형식을 제한 간접적으로 중요하다.)

0

RTSP (실제로는 RTP)는 비디오 스트리밍에 사용뿐만 아니라 많은 다른 종류 할 수있다 라이브 프레젠테이션을 포함한 미디어 RTSP는 RTP 세션을 설정하는 데 사용되는 프로토콜입니다. 다음 주소에서 내 오픈 소스 RTSP 서버 구현을 확인할 수 있습니다 모든 세부 사항에 대한

는 : https://net7mma.codeplex.com/ 그것은 다시 소싱을 지원 http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

@

또는 내 문서의 동적 생성뿐만 아니라 스트림 스트림을 사용하면 다양한 RFC가 구현되고 라이브러리는 FFMPEG 및 전송 계층의 다른 솔루션과 비교하여 성능이 향상되고 메모리가 적어 지므로 대부분의 시나리오에서 중앙 집중식 액세스 지점으로 사용할 수있는 좋은 후보자가됩니다.

+1

나는 이것이 대답이 아니라고 생각한다. – Lobo

+0

사실 나는 Ciphi가 옳다는 것을 알고 있습니다 ... 우리는 똑같은 말을하고 있습니다! 나는 당신이 독서하는 데 시간을 할애 할 수없고 강하게 머리를 가졌다 고 생각합니다. – Jay

+3

RTSP가 실제로 RTP가 아니라고 생각합니다. OSI 모델 (http://www.tomax7.com/aplus/osi_model.htm)에서 RTP는 전송 계층에있는 반면 RTSP는 애플리케이션 계층에서 정의됩니다. – Alston

0

나는 당신의 고통을 듣는다. 나는 지금 당장이 일을 겪을 것이다. (몇 년 후). 내가 배운 것을 보면 RTSP를 "VCR 컨트롤러"라고 생각할 수 있으며, 프로토콜을 통해 재생할 스트림 (프리젠 테이션)을 지정할 수 있으며, 그러면 미디어에 대한 설명을 보낸 다음 RTSP를 사용하여 원격 스트림을 재생, 중지, 일시 중지 및 녹음 할 수 있습니다. 미디어 자체가 RTP를 처리합니다. RTSP는 일반적으로 다른 소켓 또는 통신 레이어를 통해 구현됩니다. 이것은 프로토콜 일 뿐이지 만, 대부분 소켓을 통해 서버에 의해 구현됩니다. 실시간 스트림의 경우 요청하는 RTSP 스트림은 단순히 스트림의 이름입니다. 서버의 파일을 참조 할 필요가 없으며 서버의 RTSP 구현은 해당 스트림을 구문 분석하고 라이브 그래프를 결합한 다음 해당 스트림 이름에 SDP (설명)를 제공 할 수 있습니다. 그러나 이것은 물론 RTSP 서버가 구현 된 방식에 따라 다릅니다. "실시간"스트림의 경우 RTP를 사용하는 것이 더 간단 할 수 있지만 SDP를 RTP 서버에서 해당 스트림을 재생하려는 클라이언트로 전송하는 방법이 필요합니다.