OpenCV — как захватить видео поток RTSP

например, у нас есть рабочий тест потока rtsp, например: «rtsp: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov» (он работает в момент публикации этого поста)

Теперь я хочу перехватить этот видеопоток в openCV (opencv 2.4.7 / 2.4.8)
Мой код отлично работает с локальными файлами фильмов, но когда я пытаюсь записать rtsp, я получаю сообщения типа: «Не удалось прочитать файл фильма rtsp: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov»

Я пробовал несколько разных способов, таких как:

CvCapture *camera = cvCreateFileCapture("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov");
if (camera == NULL) {
printf("video is null, aborting...");
return -1;
}
else{
printf("video ok");
}

или же:

cv::VideoCapture vcap;
//open the video stream and make sure it's opened
if(!vcap.open("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov")) {
std::cout << "Error opening video stream or file" << std::endl;
return -1;
}

Любая идея ?

Niedved

7

Решение

Следующий код работает для меня без проблем. Если у вас есть имя пользователя и пароль для потока, не забудьте включить его в адрес URL.

cv::VideoCapture capture(url);

if (!capture->isOpened()) {
//Error
}

cv::namedWindow("TEST", CV_WINDOW_AUTOSIZE);

cv::Mat frame;

while(m_enable) {
if (!capture->read(frame)) {
//Error
}
cv::imshow("TEST", frame);

cv::waitKey(30);
}
7

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

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

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