保持活跃的Rtsp连接

问题描述 投票:7回答:2

我有一个简单的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数据包?
rtsp rtp rtsp-client
2个回答
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通道存活。


0
投票

发送OPTIONS请求对我不起作用。

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

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

奇迹般有效!

(不,您没有RTCP数据包到服务器)

© www.soinside.com 2019 - 2024. All rights reserved.