使用OpenCV,GStreamer

时间:2016-10-12 18:54:36

标签: c++ opencv streaming gstreamer

我正在开发一个使用GStreamer捕获raspicam和流媒体的程序。第一道菜,捕获raspicam没有问题。但是,下一个课程有一个大问题。我共创建了2个源代码(服务器,客户端)。流数据非常慢。我可以有办法改进它吗?

请帮助我。

谢谢。

----------- Server.cpp(Raspberry Pi,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;
}

}

1 个答案:

答案 0 :(得分:0)

您可能会从使用udp流而不是tcp中受益。查看this link,了解视频从rpi流式传输到PC的示例,只有100毫秒的延迟。