wake-up-neo.net

Was ist der Unterschied zwischen RTP oder RTSP in einem Streaming-Server?

Ich denke über die Entwicklung eines Streaming-Servers nach und habe die folgende Frage über RTSP (Beispiel-URL: rtsp://192.168.0.184/myvideo.mpg) oder RTP (Beispiel-URL: rtp://192.168.0.184).

Wie ich verstanden habe, wird ein RTSP Server hauptsächlich zum Streamen von Dateien verwendet, die bereits existieren, dh nicht live sind. Der Server RTP wird für die Übertragung verwendet.

Jemand korrigiert mich, wenn ich falsch liege, habe ich Recht?.

Was möchte ich einen Server entwickeln, um Live-Inhalte auf dem Computerbildschirm zu übertragen, das heißt, die zum Zeitpunkt der Übertragung im Streaming angezeigt werden.

53
Lobo

Sie haben etwas falsch gemacht ... RTSP ist ein Echtzeit-Streaming-Protokoll. Das heißt, Sie können alles, was Sie wollen, in Echtzeit streamen. Damit können Sie LIVE-Inhalte streamen (egal was es ist, Video, Audio, Text, Präsentation ...). RTP ist ein Transportprotokoll, das zum Transport von Mediendaten verwendet wird, die über RTSP ausgehandelt werden.

Mit RTSP steuern Sie die Medienübertragung über RTP. Sie können damit den Stream einrichten, abspielen, anhalten, herunterfahren ...

Wenn Sie also möchten, dass Ihr Server nur mit dem Streaming beginnt, wenn die URL angefordert wird, können Sie eine Art Nur-RTP-Server implementieren. Wenn Sie jedoch mehr Kontrolle wünschen und Live-Videos streamen möchten, müssen Sie RTSP verwenden, da es SDP und andere wichtige Decodierungsdaten überträgt.

Lesen Sie die Dokumente, die ich hier verlinkt habe, sie sind ein guter Ausgangspunkt.

89
Cipi

AFAIK, RTSP überträgt überhaupt keine Streams, sondern ist nur ein Out-of-Band-Steuerungsprotokoll mit Funktionen wie PLAY und STOP.

Raw UDP oder RTP over UDP sind Übertragungsprotokolle für Streams wie Raw TCP oder HTTP over TCP.

Um ein bestimmtes Programm über das angegebene Übertragungsprotokoll streamen zu können, muss für Ihr Containerformat eine Kapselungsmethode definiert werden. Zum Beispiel können TS-Container über UDP übertragen werden, Matroska jedoch nicht.

Fast alles kann durch TCP aber transportiert werden.

(Die Tatsache, welches Codec Sie verwenden, ist auch indirekt von Bedeutung, da es die Containerformate einschränkt, die Sie verwenden können.)

15
vbence

Einige Grundlagen:

Der RTSP-Server kann sowohl als Dead-Source- als auch als Live-Source-Server verwendet werden. RTSP-Protokolle bieten Ihnen Befehle (wie bei Ihrer VCR-Fernbedienung), und die Funktionalität hängt von Ihrer Implementierung ab.

RTP ist ein Echtzeitprotokoll, mit dem Audio und Video in Echtzeit übertragen werden. Der verwendete Transport kann je nach Transportadresse und Port Unicast, Multicast oder Broadcast sein. Neben dem Transportieren von RTP erledigt viele Dinge für Sie, wie Paketierung, Neuordnung, Jitter-Kontrolle, QoS, Unterstützung für Lip-Sync .....

In Ihrem Fall, wenn Sie einen Broadcast-Streaming-Server wünschen, benötigen Sie sowohl RTSP (zur Steuerung) als auch RTP (Audio- und Videoübertragung)

Zunächst können Sie den von live555 bereitgestellten Beispielcode durchgehen

11
Alam

Ich höre deinen Schmerz. Ich mache das gerade durch (Jahre später). Nach dem, was ich gelernt habe, können Sie sich RTSP als "VCR-Controller" vorstellen. Das Protokoll ermöglicht es Ihnen, anzugeben, welche Streams (Präsentationen) Sie wiedergeben möchten. Anschließend erhalten Sie eine Beschreibung der Medien, und dann können Sie Verwenden Sie RTSP, um den Remote-Stream abzuspielen, anzuhalten, anzuhalten und aufzuzeichnen. Das Medium selbst geht über RTP. RTSP wird normalerweise über eine andere Socket- oder Kommunikationsschicht implementiert. Obwohl es sich lediglich um ein Protokoll handelt, wird es meistens von einem Server über einen Socket implementiert. Bei Live-Streams ist der angeforderte RTSP-Stream einfach ein Name eines Streams. Es muss nicht auf eine Datei auf dem Server verweisen, die RTSP-Implementierung des Servers kann diesen Stream analysieren, ein Live-Diagramm zusammenstellen und dann den SDP (Beschreibung) für diesen Streamnamen bereitstellen. Dies ist natürlich spezifisch für die Art und Weise, wie der RTSP-Server implementiert wurde. Für "Live" -Streams ist es wahrscheinlich einfacher, nur RTP zu verwenden, aber Sie benötigen eine Möglichkeit, den SDP vom RTP= Server auf den Client zu übertragen, der diesen Stream wiedergeben möchte.

5
eric frazer

Ich denke das ist richtig. RTSP kann RTP intern verwenden.

4
JP19