【问题标题】:OpenCV - how to capture rtsp video streamOpenCV - 如何捕获 rtsp 视频流
【发布时间】:2014-01-29 06:03:15
【问题描述】:

例如,我们有有效的 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;
}

有什么想法吗?

--

尼德维德

【问题讨论】:

    标签: c++ opencv video stream rtsp


    【解决方案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);
    }
    

    【讨论】:

    • 我已将此代码添加到 VideoCapture 并公开了 api,但这不起作用
    • 您是否将 ffmpeg dll 与您的可执行文件放在同一个文件夹中?
    • 从哪里获得?放在哪里?我在尝试安卓。在我的日志猫中,我收到以下错误-CameraWrapperConnector::connectToLib ERROR: cannot dlopen camera wrapper library 01-05 15:25:06.185: E/OpenCV::camera(18562): Native_camera 返回打开错误:4
    • 对不起,我对安卓一无所知
    猜你喜欢
    • 2012-01-29
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 2016-01-09
    • 2013-02-07
    • 1970-01-01
    相关资源
    最近更新 更多