2016-10-12 43 views
0

私はGStreamerでraspicamとストリーミングをキャプチャしているプログラムを開発しています。最初のコースは、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

あなたはTCPの代わりにUDPストリームを使用しての恩恵を受ける可能性があります。ビデオがrpiからpcまで100 ms遅れでストリーミングされた例については、this linkを参照してください。

関連する問題