2016-10-12 4 views
0

Я разрабатываю программу, которая захватывает raspicam и потоковая передача с помощью GStreamer. Первый курс, захватив raspicam, не имеет проблем. Но следующий курс имеет большую проблему. Я был создан в общей сложности 2 из исходного кода (сервер, клиент). Потоковые данные очень медленные. Могу ли я улучшить его?Потоковое видео с использованием OpenCV, GStreamer

Пожалуйста, помогите мне.

спасибо.

----------- server.cpp (Малина 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; 
} 

}

+0

_ «Могу ли я найти способ улучшить его?» _ Вам, вероятно, лучше спросить в [SE Code Review] (http://codereview.stackexchange.com/), чтобы улучшить рабочий код. –

+0

Привет, сэр! Как вы решили проблему? У меня тоже такой же вопрос. Благодаря! –

ответ

0

Вы могли бы извлечь выгоду из использования UdP потока вместо протокола TCP. Посмотрите this link на пример, где видео было передано от rpi до ПК с задержкой в ​​100 мс.

Смежные вопросы