使用OpenCV打开MJPEG流失败

问题描述

我正在尝试像这样读取本地MJPEG流

try
{
    cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_VERBOSE);

    cv::VideoCapture vc;
    vc.setExceptionMode(true);
    vc.open("http://localhost:5010/TabletContent/Mjpeg",cv::CAP_OPENCV_MJPEG);

    std::vector<cv::VideoCapture> streams{ vc };
    std::vector<int> readyIndex;

    cv::Mat frame;
    while (cv::VideoCapture::waitAny(streams,readyIndex))
    {
        vc.retrieve(frame);
    }

}
catch (const std::exception& ex)
{
    std::cout << "\n" << ex.what();
}

但是打开流失败

[DEBUG:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\videoio_registry.cpp (165) cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Builtin backends(7): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940)
[DEBUG:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\videoio_registry.cpp (189) cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Available backends(7): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940)
[ INFO:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\videoio_registry.cpp (191) cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Enabled backends(7,sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940)
OpenCV(4.4.0) Error: Unspecified error (Could not open 'http://localhost:5010/TabletContent/Mjpeg') in cv::VideoCapture::open,file C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\cap.cpp,line 177

OpenCV(4.4.0) C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\cap.cpp:177: error: (-2:Unspecified error) Could not open 'http://localhost:5010/TabletContent/Mjpeg' in function 'cv::VideoCapture::open'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)