스트리밍 서버에서 RTP와 RTSP의 차이점은 무엇입니까?
스트리밍 서버 개발에 대해 생각하고 있는데 RTSP (예제 url :) rtsp://192.168.0.184/myvideo.mpg
또는 RTP
(예제 url :)를 통해 다음과 같은 질문이 rtp://192.168.0.184
있습니다.
내가 이해했듯이 RTSP
서버는 주로 이미 존재하는 (즉, 라이브가 아닌) 파일의 스트리밍에 사용됩니다. RTP
서버는 방송에 사용됩니다.
내가 틀렸다면 누군가 나를 바로 잡으십시오.
스트리밍으로 방송되는 시점에 표시되는 컴퓨터 화면에 라이브 콘텐츠를 방송하는 서버를 개발하고 싶습니다.
뭔가 잘못되었습니다 ... RTSP 는 실시간 스트리밍 프로토콜입니다. 즉, 원하는 것을 실시간으로 스트리밍 할 수 있습니다. 따라서 라이브 콘텐츠를 스트리밍하는 데 사용할 수 있습니다 (동영상, 오디오, 텍스트, 프레젠테이션 ...). RTP 는 RTSP를 통해 협상되는 미디어 데이터를 전송하는 데 사용되는 전송 프로토콜입니다.
RTSP를 사용하여 RTP를 통한 미디어 전송을 제어합니다. 스트림을 설정, 재생, 일시 중지, 분해하는 데 사용합니다.
따라서 URL이 요청 될 때 서버가 스트리밍을 시작하도록하려면 일종의 RTP 전용 서버를 구현할 수 있습니다. 그러나 더 많은 제어를 원하고 라이브 비디오를 스트리밍하는 경우 SDP 및 기타 중요한 디코딩 데이터를 전송하기 때문에 RTSP를 사용해야합니다.
여기에 링크 된 문서를 읽으십시오. 좋은 출발점이됩니다.
AFAIK, RTSP는 스트림을 전혀 전송하지 않으며 PLAY 및 STOP과 같은 기능을 가진 대역 외 제어 프로토콜입니다.
원시 UDP 또는 UDP를 통한 RTP는 원시 TCP 또는 TCP를 통한 HTTP와 같은 스트림에 대한 전송 프로토콜입니다.
주어진 전송 프로토콜을 통해 특정 프로그램을 스트리밍 할 수 있으 려면 컨테이너 형식에 대한 캡슐화 방법 을 정의해야 합니다 . 예를 들어 TS 컨테이너는 UDP를 통해 전송할 수 있지만 Matroska는 전송할 수 없습니다.
하지만 거의 모든 것이 TCP를 통해 전송 될 수 있습니다.
(어떤 코덱 을 사용하는지는 사용할 수있는 컨테이너 형식을 제한하므로 간접적으로도 중요합니다.)
몇 가지 기본 사항 :
RTSP 서버는 라이브 소스뿐만 아니라 데드 소스에도 사용할 수 있습니다. RTSP 프로토콜은 사용자에게 명령 (VCR 리모컨과 유사)을 제공하며 기능은 구현에 따라 다릅니다.
RTP는 실시간으로 오디오 및 비디오를 전송하는 데 사용되는 실시간 프로토콜입니다. 사용되는 전송은 전송 주소 및 포트에 따라 유니 캐스트, 멀티 캐스트 또는 브로드 캐스트 일 수 있습니다. RTP를 전송하는 것 외에도 패킷 화, 재정렬, 지터 제어, QoS, 립싱크 지원 등 많은 작업을 수행합니다 .....
귀하의 경우 방송 스트리밍 서버를 원한다면 RTSP (제어용)와 RTP (방송 오디오 및 비디오)가 모두 필요합니다.
시작하려면 live555에서 제공하는 샘플 코드를 살펴볼 수 있습니다.
당신의 고통이 들립니다. 나는 이것을 지금 겪고있다 (몇 년 후). 제가 배운 것에서 RTSP를 "VCR 컨트롤러"로 생각할 수 있습니다. 프로토콜을 사용하면 재생하려는 스트림 (프레젠테이션)을 지정할 수 있으며 미디어에 대한 설명을 보낼 수 있습니다. RTSP를 사용하여 원격 스트림을 재생, 중지, 일시 중지 및 기록합니다. 미디어 자체는 RTP를 통과합니다. RTSP는 일반적으로 다른 소켓 또는 통신 계층을 통해 구현됩니다. 단순한 프로토콜이지만 대부분의 경우 소켓을 통해 서버에 의해 구현됩니다. 실시간 스트림의 경우 요청한 RTSP 스트림은 단순히 스트림의 이름입니다. 서버의 파일을 참조 할 필요가 없으며 서버의 RTSP 구현은 해당 스트림을 구문 분석하고 라이브 그래프를 구성한 다음 해당 스트림 이름에 대한 SDP (설명)를 제공 할 수 있습니다. 그러나, 물론 이것은 RTSP 서버가 구현 된 방식에 따라 다릅니다. "라이브"스트림의 경우 RTP를 사용하는 것이 더 간단 할 수 있지만 RTP 서버에서 해당 스트림을 재생하려는 클라이언트로 SDP를 전송하는 방법이 필요합니다.
나는 그것이 맞다고 생각한다. RTSP는 내부적으로 RTP를 사용할 수 있습니다.
RTSP (실제로 RTP)는 비디오 스트리밍뿐만 아니라 라이브 프레젠테이션을 포함한 다른 많은 유형의 미디어에도 사용할 수 있습니다. Rtsp는 RTP 세션을 설정하는 데 사용되는 프로토콜입니다.
자세한 내용은 https://net7mma.codeplex.com/ 에서 내 오픈 소스 RTSP 서버 구현을 확인할 수 있습니다.
또는 내 기사 @ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp
리 소싱 스트림과 스트림의 동적 생성을 지원하며 다양한 RFC가 구현되며 라이브러리는 FFMPEG 및 전송 계층의 다른 거의 모든 솔루션보다 더 나은 성능과 적은 메모리를 달성하므로 다음과 같이 사용하기에 좋은 후보가됩니다. 대부분의 시나리오에 대한 중앙 집중식 액세스 지점.
'programing' 카테고리의 다른 글
C가->와.을 구분하는 이유는 무엇입니까? (0) | 2021.01.06 |
---|---|
앱 ID와 번들 ID의 차이점은 무엇입니까? (0) | 2021.01.06 |
목록에서 변환 할 하나의 라이너 (0) | 2021.01.06 |
C #의 자동 속성이란 무엇이며 그 용도는 무엇입니까? (0) | 2021.01.06 |
f, T, C, M, P, C, K, # 등과 같은 색상 상자에있는 문자의 Xcode intellisense 의미 (0) | 2021.01.06 |