保持活跃的Rtsp连接

时间:2011-10-11 07:04:54

标签: rtsp rtp rtsp-client

我有一个简单的Rtsp客户端...客户端将Rtsp命令发送到Rtsp服务器并从服务器获取RTP数据包。

  

问题是经过一段时间(约3-4分钟)我的第三方RTSP   服务器断开与RTSP客户端的连接。

我没有实现RTCP ...我从rtsp服务器获取rtp数据包但是没有发送任何RTCP PACKET ...

我做了简单的搜索,发现有些人使用RTSP命令[比如OPTIONS,SET PARAMETER-GET PARAMETER]也保持RTSP服务器和客户端之间的连接...... 但在我的情况下,这不起作用......

以下是我的问题:

  1. 与RTSP服务器保持连接的最佳方法是什么?
  2. 我是否必须实施RTCP [将RTCP数据包发送到服务器]?可能因为我没有向服务器发送RTCP数据包而导致连接中断?

2 个答案:

答案 0 :(得分:7)

您在SETUP响应中收到的超时值是多少?您是否使用此值来实现保持活动功能?

  

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

通常RTSP基于TCP,RTP基于UDP。理想情况下,两个通道都需要保持活动功能。如果RTP会话关闭并不意味着RTSP连接也应该被拆除,而RTP信道必须在RTSP信道拆除时关闭。

1)与RTSP服务器保持连接的最佳方法是什么? - >在SETUP响应中收到timeout值之前,定期发送任何RTSP请求(OPTIONS,SET_PARAMETER或GET_PARAMETER)。

2)我是否必须实施RTCP [将RTCP数据包发送到服务器]?连接是否会丢失,因为我不向服务器发送RTCP数据包? - > RFC(RTSP或RTP)并未强制要求RTCP保持RTP通道存活。

答案 1 :(得分:0)

发送OPTIONS请求并不适合我。

我可以发送以保持连接活动的唯一RTSP命令是GET_PARAMETER

我的超时是60秒,我每40秒发送一次GET_PARAMETER请求

像魅力一样!

(不,您不必将RTCP数据包发送到服务器)