libcurl rtsp使用rtsp服务器保持活动状态

时间:2016-08-03 01:44:19

标签: rtsp keep-alive

我正在使用libcurl实现rtsp(示例代码https://curl.haxx.se/libcurl/c/rtsp.html) 我在发送PLAY选项后收到了RTP数据。 但连接断了大约十分钟。 我认为它可能会向rtsp服务器发送心跳消息以保持会话活跃。

如何使用libcurl保持连接活动?

代码流程:

// Set Option

// Set Describe

// Set Setup

// PLAY

/* Receive RTP DATA*/

while(1)

{

curl_easy_set_opt(curl, CURLOPT_WRITEFUNCTION, rtsp_write);

curl_easy_set_opt(curl, CURLOPT_WRITEDATA, NULL);

.....

}

2 个答案:

答案 0 :(得分:0)

您需要再次发送CURL_RTSPREQ_OPTIONS。我每30秒发一次。

答案 1 :(得分:0)

RTSP连接确实需要心跳。它在 RCF 2326 12.37 ONVIF流规范部分5.2.1.1.1 中指定。< / p>

基本上你这样做:

  1. 可选择设置超时参数(以秒为单位),通常默认值为60秒。
  2. RTSP SETUP响应应包含超时,客户端应使用它来保持连接。
  3. 客户应使用任何RTSP方法调用RTSP服务器或发送RTCP RR。建议的方法是发送RTSP SET_PARAMETER请求。