web-dev-qa-db-ja.com

OpenCV-RTSPビデオストリームをキャプチャする方法

たとえば、「rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov」のように作業中のrtspストリームテストがあります(この投稿を公開した瞬間に機能します)

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

8
Niedved

次のコードは問題なく動作します。ストリームのユーザー名とパスワードを持っている場合は、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
Murat Şeker