ストリーミングサーバーのRTPまたはRTSPの違いは何ですか?
-
29-09-2019 - |
質問
ストリーミングサーバーの開発を考えていますが、次の質問があります。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のみのサーバーを実装できます。ただし、より多くのコントロールが必要で、ライブビデオをストリーミングしている場合は、RTSPを使用する必要があります。これは、SDPやその他の重要なデコードデータを送信するためです。
ここにリンクしたドキュメントを読んでください、それらは良い出発点です。
他のヒント
AFAIK、RTSPはストリームをまったく送信しません。これは、Play and Stopなどの機能を備えた帯域外の制御プロトコルです。
UDPを介した生のUDPまたはRTPは、RAW TCPまたはTCPを介したHTTPのようなストリームの伝送プロトコルです。
特定のプログラムを指定された送信プロトコルでストリーミングできるようにするために、 カプセル化方法 あなたのために定義する必要があります コンテナ形式. 。たとえば、TSコンテナはUDPを介して送信できますが、マトロスカはできません。
しかし、ほとんどすべてがTCPを介して輸送できます。
(その事実 コーデック また、使用できるコンテナ形式を制限するため、間接的に問題を使用していますか?)
いくつかの基本:
RTSPサーバーは、デッドソースとライブソースに使用できます。 RTSPプロトコルは、コマンド(VCRリモートなど)を提供し、機能は実装に依存します。
RTPは、オーディオとビデオのリアルタイムでの転送に使用されるリアルタイムプロトコルです。使用される輸送は、輸送住所と港に応じて、ユニキャスト、マルチキャスト、またはブロードキャストにすることができます。 RTPの輸送に加えて、パケット化、並べ替え、ジッターコントロール、QoS、リップシンクのサポートなど、多くのことがあります。
あなたの場合、ストリーミングサーバーをブロードキャストする場合は、RTSP(制御用)とRTP(ブロードキャストオーディオとビデオ)の両方が必要です
開始するには、によって提供されたサンプルコードを実行できます Live555
あなたの痛みが聞こえます。私は今(数年後)にこれを経験しています。私が学んだことから、RTSPを「VCRコントローラー」と考えることができます。プロトコルでは、プレイしたいストリーム(プレゼンテーション)を指定できます。メディアの説明を送信してから、 RTSPを使用して、リモートストリームを再生、停止、一時停止、および記録します。メディア自体はRTPを超えています。 RTSPは通常、異なるソケットまたは通信レイヤーに実装されます。単なるプロトコルですが、ほとんどの場合、ソケットを介してサーバーによって実装されます。ライブストリームの場合、要求するRTSPストリームは単なるストリームの名前です。サーバー上のファイルを参照する必要はありません。サーバーのRTSP実装は、そのストリームを解析し、ライブグラフをまとめてから、そのストリーム名にSDP(説明)を提供できます。しかし、これはもちろん、RTSPサーバーの実装方法に固有です。 「ライブ」ストリームの場合、RTPを使用するだけで簡単ですが、SDPをRTPサーバーからそのストリームを再生したいクライアントに転送する方法が必要です。
それは正しいと思います。 RTSPは内部でRTPを使用できます。
RTSP(実際にはRTP)は、ビデオのストリーミングに使用できますが、ライブプレゼンテーションを含む他の多くのタイプのメディアも使用できます。 RTSPは、RTPセッションのセットアップに使用されるプロトコルにすぎません。
すべての詳細については、次のアドレスで私のオープンソースRTSPサーバーの実装を確認できます。 https://net7mma.codeplex.com/
または私の記事 @ http://www.codeproject.com/articles/507218/managed-media-aggregation-using-rtsp and-rtp
再ソーシングストリームとストリームの動的な作成をサポートします。さまざまなRFCが実装され、ライブラリはFFMPEGよりも優れたパフォーマンスとメモリが少なく、輸送層の他のソリューションを実現するため、ほとんどのシナリオの集中アクセスポイント。