1

RTSP を使用してデバイスからビデオ データを取得したいと考えています。

UDP 経由の RTSP はうまく機能しますが、TCP 経由が必要です。

RTSP コマンドを発行した後、RTP を受け取りますが、ここではそれらを処理する方法がわかりません。ペイロードは次のとおりです: $[チャネル - 1 バイト][長さ - 2 バイト][データ]

問題は、私がそのようなパケットを受信し、時にはチャネルが 10 または 99 などのさらなるパケットを受信することです。

では、ペイロードの処理方法について誰か入力してください。

4

4 に答える 4

2

RFC 2326 "Real Time Streaming Protocol (RTSP)"にすべてが含まれています。「10.12 埋め込み (インターリーブ) バイナリ データ」が必要です。

RTP パケットなどのストリーム データは、ASCII ドル記号 (16 進数の 24) でカプセル化され、その後に 1 バイトのチャネル識別子が続き、その後にカプセル化されたバイナリ データの長さが、ネットワーク バイト順の 2 バイト整数のバイナリとして続きます。その直後にストリーム データが続きます。CRLF はありませんが、上位層のプロトコル ヘッダーが含まれています。各 $ ブロックには、正確に 1 つの上位層プロトコル データ ユニット (たとえば、1 つの RTP パケット) が含まれます。

そこにも小さな例があります:

 S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
 S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
 S->C: $\001{2 byte length}{"length" bytes  RTCP packet}
于 2012-08-24T13:41:17.873 に答える
1

これは TCP/RTP のパケット形式です:

[$ - 1byte][Transport Channel - 1byte][RTP data length - 2bytes][RTP data]

残りは更新のようなものです

詳細については、生の rtp パケットを処理してください

于 2012-09-01T09:41:57.297 に答える
1

PPS の取得は IMO で簡単で、パケットを解析する必要はありません。

SPS へのリクエストは、推測では、パケットに入る必要があります (WS メッセージの「無効なパケット」について心配する必要はないと思います。

Type at PT at 0x09 を使用するのはどうですか?

パケットの説明こちら

ここの回答でRTPをアンパックするサンプル実装

RTSP 制御と SDP over TCP に関する詳細については、こちらを参照してください。RTSP セッション/会話の詳細と、ビデオ内の各トラックの制御プロトコルの選択に関するメッセージングの詳細を調べている場合。SDP / RTCPに転用せずに答えを得ることができれば、明らかに、その方が高速/優れています。

于 2012-08-24T14:05:01.533 に答える