Невозможно запустить потоки одновременно

конспект Я выполняю простую программу, в которой я создаю, а затем отсоединяю 5 потоков, передаваемая мною функция читает видеопоток и записывает видеофайл.
Проблема в том, что записанные видеофайлы пропустили слишком много кадров. Я хочу, чтобы все эти потоки запускались одновременно и генерировали видеофайлы из потоковых данных, БЕЗ пропуская любые кадры.
Вопрос Как расставить приоритеты для этих потоков, чтобы они всегда были активны?
Операционные системы : Ubuntu 16.04

void myfunction( string  stream, string video_name)
{
cv::VideoCapture cap(stream);//read stream
Mat frame;
int frame_width = cap.get(CV_CAP_PROP_FRAME_WIDTH);
int frame_height = cap.get(CV_CAP_PROP_FRAME_HEIGHT);

VideoWriter video(video_name,CV_FOURCC('X','V','I','D'),10, Size(frame_width,frame_height));

while(1){
cap >> frame; //capture frame
video.write(frame);
}

}//end of myfunction

void main()
{
std::thread t1 (myfunction,my_stream_link, "myoutput1.avi");
//t1.detach();
std::thread t2 (myfunction,my_stream_link, "myoutput2.avi");
//t2.detach();
std::thread t3 (myfunction,my_stream_link, "myoutput3.avi");
//t3.detach();
std::thread t4 (myfunction,my_stream_link, "myoutput4.avi");
//t4.detach();
std::thread t5 (myfunction,my_stream_link, "myoutput5.avi");
//t5.detach();
t1.join();
t2.join();
t3.join();
t4.join();
t5.join();

}//end of main

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]