我是用libcurl(示例代码https://curl.haxx.se/libcurl/c/rtsp.html)实现rtsp的,我在发送PLAY option后收到了RTP数据。但连接中断了大约10分钟。我认为它可能会向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);
.....
}发布于 2016-08-24 00:38:57
您需要重新发送CURL_RTSPREQ_OPTIONS。我每30秒发送一次。
发布于 2017-07-04 20:09:20
RTSP连接确实需要心跳。它在RCF2326,第12.37节和ONVIF流规范,第5.2.1.1.1节中指定。
基本上是这样做的:
SETUP响应应包含超时,客户端应使用它来保持活动状态。RTSP应使用任何RTSP方法调用RTSP服务器,或发送RTCP RR。推荐的方法是发送RTSP SET_PARAMETER请求。https://stackoverflow.com/questions/38733021
复制相似问题