8

単純なRtspクライアントがあります...クライアントはRtspコマンドをRtspサーバーに送信し、サーバーからRTPパケットを取得します。

問題は、しばらくすると(約3〜4分)、サードパーティのRTSPサーバーがRTSPクライアントとの接続を切断することです。

RTCPを実装していません...rtspサーバーからrtpパケットを取得しましたが、RTCPパケットを送信しません...

簡単に検索すると、RTSPコマンド[OPTIONS、SET PARAMETER-GETPARAMETERなど]を使用している人がいることがわかりました。RTSPサーバーとクライアント間の接続は維持されます...しかし、私の場合は機能しません...

これが私の質問です:

  1. RTSPサーバーとの接続を維持するための最良の方法は何ですか?
  2. RTCPを実装する必要がありますか[サーバーにRTCPパケットを送信する]?RTCPパケットをサーバーに送信しないため、接続が切断される可能性がありますか?
4

2 に答える 2

8

SETUP応答で受け取るタイムアウトの値は何ですか?この値を使用して、キープアライブ機能を実装していますか?

Session = "Session" ":" session-id [";" "timeout" "=" delta-seconds]

通常、RTSPはTCPに基づいており、RTPはUDPに基づいています。したがって、理想的には、両方のチャネルにキープアライブ機能が必要です。RTPセッションが閉じている場合、RTSP接続もティアダウンする必要があるのに対し、RTPチャネルはRTSPチャネルのティアダウンで閉じる必要があるという意味ではありません。

1)RTSPサーバーとの接続を維持するための最良の方法は何ですか?timeout-> SETUP応答で値を受信する前に、RTSP要求(OPTIONS、SET_PARAMETER、またはGET_PARAMETER)を定期的に送信します。

2)RTCPを実装する必要がありますか[サーバーにRTCPパケットを送信する]?RTCPパケットをサーバーに送信しないため、接続が切断される可能性がありますか?-> RFC(RTSPまたはRTP)は、RTPチャネルを存続させるためのRTCPの要件を義務付けていません。

于 2011-10-11T08:24:04.560 に答える
0

OPTIONSリクエストを送信してもうまくいきませんでした。

接続を維持するために送信できる唯一のRTSPコマンドはGET_PARAMETERでした

タイムアウトは60秒で、40秒ごとにGET_PARAMETERリクエストを送信します

チャームのように機能します!

(いいえ、サーバーにパケットをRTCPする必要はありません)

于 2016-10-02T15:10:48.053 に答える