2016-08-03 130 views
0

我實現與libcurl的RTSP(示例代碼https://curl.haxx.se/libcurl/c/rtsp.html) 我發送PLAY選項後收到的RTP數據。 但連接斷開約十分鐘。 我認爲它可能會發送心跳消息給rtsp服務器以保持會話活着。的libcurl RTSP永葆與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

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

+0

這不會提供問題的答案。一旦你有足夠的聲譽,你將能夠評論任何帖子;相反,提供不需要提問者澄清的答案。 –

0

RTSP連接確實需要心跳。它是在RCF 2326指定,部12.37ONVIF流規範節5.2.1.1.1

基本上你:

  1. 可選設置超時參數(以秒爲單位),通常默認爲60秒。
  2. RTSP SETUP響應應該包含超時,並且客戶端應該使用它來保持連接。
  3. 客戶應使用任何RTSP方法調用RTSP服務器或發送RTCP RR。推薦的方法是發送RTSP SET_PARAMETER請求。