2011-10-11 18 views
7

Tengo un cliente Rtsp simple ... El cliente envía comandos Rtsp al servidor Rtsp y obtiene paquetes RTP del servidor.Keeping Alive Rtsp Connection

El problema es que después de un tiempo (alrededor de 3-4 minutos) mi tercera parte RTSP terminar la conexión del servidor con mi cliente RTSP.

no he implementado RTCP ... Tomo paquetes RTP desde un servidor RTSP pero no envía ningún paquete RTCP ...

hago simple búsqueda y encontrar que algunos chicos usan algunos comandos RTSP [como OPCIONES, ajuste el parámetro GET-PARÁMETROS] demasiado mantener las conexiones entre servidor y cliente RTSP ... Pero en mi caso que no funciona ...

aquí está mi pregunta:

  1. ¿Cuál es la mejor manera de mantener la conexión viva con el servidor RTSP?
  2. ¿Debo implementar RTCP [enviar paquetes RTCP al servidor]? ¿Puede la conexión caer porque no envío paquetes RTCP al servidor?

Respuesta

6

¿Cuál es el valor del tiempo de espera que recibe en la respuesta de CONFIGURACIÓN? ¿Estás usando este valor para implementar la funcionalidad Keep alive?

Session = "Session" ":" session-id [";" "Tiempo de espera" "=" delta-segundo ]

Generalmente RTSP se basa en TCP y RTP se basa en el UDP. Entonces, idealmente, ambos canales requieren la funcionalidad de mantener activo. Si la sesión RTP está cerrada, eso no significa que la conexión RTSP también deba ser eliminada, mientras que los canales RTP deben estar cerrados en el desmantelamiento del canal RTSP.

1) ¿Cuál es la mejor manera de mantener la conexión viva con el servidor RTSP? -> Enviar cualquier solicitud de RTSP periódicamente (OPCIONES, SET_PARAMETER o GET_PARAMETER) antes del timeout valor recibido en la respuesta de CONFIGURACIÓN.

2) ¿Debo implementar RTCP [enviar paquetes RTCP al servidor]? ¿Puede la conexión caer porque no envío paquetes RTCP al servidor? -> RFC (RTSP o RTP) no exige el requisito de RTCP para mantener vivos los canales RTP.

+0

Mi tercera servidor RTSP partido no da tiempo de la sesión a cabo valor ... Aunque i opciones de envío del comando en cada 5 segundos se pierde la conexión .. – Novalis

+0

Significa que su servidor espera paquetes RTCP. – Alam

+0

Sí ... Cuando envío paquetes RTCP, no se desconectan las conexiones ... Pero "se come" un ancho de banda axtra .. – Novalis

0

Enviar una solicitud de OPCIONES no funcionó para mí.

El único comando RTSP que podría enviar a mantener la conexión viva era GET_PARAMETER

Mi tiempo de espera es de 60 años y me envía una solicitud GET_PARAMETER cada 40

funciona como un encanto!

(No, no tiene que RTCP los paquetes al servidor)

+1

Tenga en cuenta que "GET_PARAMETER" no es compatible con todos los servidores RTSP. Antes de enviarlo, debe verificar la respuesta a "OPCIONES" si contiene el parámetro "GET_PARAMETER". – Gediminas