2011-10-11 9 views
7

Ho un semplice client Rtsp ... Il client invia comandi Rtsp al server Rtsp e ottiene i pacchetti RTP dal server.Keeping Alive Connessione Rtsp

Il problema è che dopo un certo tempo (circa 3-4 minuti) la mia 3a parte RTSP connessione goccia Server con il mio cliente RTSP.

non ho implementato RTCP ... prendo pacchetti RTP da server RTSP, ma non invia alcun pacchetto RTCP ...

Faccio semplice ricerca e scoprire che alcuni ragazzi utilizzano alcuni comandi RTSP [come OPZIONI, impostare il parametro-GET PARAMETRO] troppo connessioni attive che Mantieni tra RTSP Server e client ... ma nel mio caso che non funziona ...

Ecco le mie domande:

  1. Qual è il modo migliore per mantenere attiva la connessione con il server RTSP?
  2. Devo implementare l'RTCP [inviare pacchetti RTCP al server]? La connessione può cadere perché non invio pacchetti RTCP al server?

risposta

6

Qual è il valore di timeout che si riceve nella risposta SETUP? Stai usando questo valore per implementare la funzionalità keep alive?

Sessione = "Sessione" ":" ID-sessione [";" "Timeout" "=" delta-secondi ]

Generalmente RTSP è basato su TCP e RTP si basa su UDP. Quindi idealmente entrambi i canali richiedono funzionalità keep alive. Se la sessione RTP è chiusa, ciò non significa che la connessione RTSP dovrebbe essere disattivata mentre i canali RTP devono essere chiusi durante la rimozione del canale RTSP.

1) Qual è il modo migliore per mantenere attiva la connessione con il server RTSP? -> Invia periodicamente una richiesta RTSP (OPZIONI, SET_PARAMETER o GET_PARAMETER) prima del valore timeout ricevuto nella risposta SETUP.

2) Devo implementare RTCP [inviare pacchetti RTCP al server]? La connessione può cadere perché non invio pacchetti RTCP al server? -> RFC (RTSP o RTP) non impone il requisito di RTCP per mantenere in vita i canali RTP.

+0

mio terzo server di partito RTSP non dà tempo di sessione out valore ... anche se io mando comando AT ogni 5 secondi si scende di connessione OPZIONI .. – Novalis

+0

Significa che il server si aspetta pacchetti RTCP. – Alam

+0

Sì ... Quando invio pacchetti RTCP non rilascia connessioni ... Ma "mangia" una larghezza di banda axtra .. – Novalis

0

L'invio di una richiesta OPTIONS non ha funzionato per me.

L'unico comando RTSP che ho potuto inviare a mantenere viva la connessione è stata GET_PARAMETER

mio timeout è 60 e io inviare una richiesta GET_PARAMETER ogni 40s

funziona come un fascino!

(No, non c'è bisogno di RTCP pacchetti al server)

+1

Nota che "GET_PARAMETER" non è supportato da tutti i server RTSP. Prima di inviarlo, è necessario verificare la risposta a "OPZIONI" se contiene il parametro "GET_PARAMETER". – Gediminas