我正在使用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);
.....
}
答案 0 :(得分:0)
您需要再次发送CURL_RTSPREQ_OPTIONS。我每30秒发一次。
答案 1 :(得分:0)
RTSP连接确实需要心跳。它在 RCF 2326 , 12.37 和 ONVIF流规范,部分5.2.1.1.1 中指定。< / p>
基本上你这样做:
SETUP
响应应包含超时,客户端应使用它来保持连接。SET_PARAMETER
请求。