OpenCV - как захватить RTSP видео поток
например, у нас есть рабочий тест потока rtsp, например: "rtsp://184.72.239.149/vod/mp4: BigBuckBunny_115k.mov " (работает в момент публикации данного поста)
теперь я хочу поймать этот видеопоток в openCV (opencv 2.4.7 / 2.4.8) У меня мой код отлично работает на локальных файлах фильмов, но когда я пытаюсь захватить rtsp, я получаю msgs, например: "не удалось прочитать файл фильма 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
1 ответов
следующий код работает для меня без каких-либо проблем. Если у вас есть имя пользователя и пароль для стрима, не забудьте включить его в 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);
}