2016-10-12 73 views
0

我正在開發一個程序,捕捉raspicam和流與GStreamer。捕捉raspicam的第一門課程沒有問題。但是,下一個課程有一個很大的問題。我創建了總共2個源代碼(服務器,客戶端)。流數據非常緩慢。我可以有辦法改善它嗎?使用OpenCV流視頻,GStreamer

請幫幫我。

謝謝。

----------- Server.cpp(覆盆子裨,Raspbian)-----------

cap.set(CAP_PROP_FPS, 30); 
cap.open(0); 
// Movie Frame Setup 

fps   = cap.get(CAP_PROP_FPS); 
width  = cap.get(CAP_PROP_FRAME_WIDTH); 
height  = cap.get(CAP_PROP_FRAME_HEIGHT); 
cout << "Capture camera with " << fps << " fps, " << width << "x" << height << " px" << 

writer.open("appsrc ! gdppay ! tcpserversink host=192.168.0.29 port=5000", 0, fps, cv::Size(width, height), true); 

while(1){ 
     printf("AA"); 
     cap >> frame; 
     writer << frame; 


} 

-------- --- Client.cpp(PC,Ubuntu的)-----------

Mat test; 
String captureString = "tcpclientsrc host=192.168.0.29 port=5000 ! gdpdepay ! appsink"; 

VideoCapture cap(captureString);//0); 

namedWindow("t"); 
while(1) 
{ 


    cap >> test; 

    imshow("t", test); 

    if(waitKey(10) > 0) 
     break; 
} 

}

+0

_「我可以有辦法改進它嗎?」_你可能最好在[SE Code Review](http://codereview.stackexchange.com/)上詢問以改進工作代碼。 –

+0

嗨,先生!你是如何解決這個問題的?我也有同樣的問題。謝謝! –

回答

0

你可能會使用一個UDP流,而不是TCP中獲益。查看this link,其中一個視頻從rpi流式傳輸到pc,僅延遲100 ms。