用于 IP 摄像机访问的 OpenCV 2.4.11 中的 opencv_ffmpeg**.dll 错误?

Posted

技术标签:

【中文标题】用于 IP 摄像机访问的 OpenCV 2.4.11 中的 opencv_ffmpeg**.dll 错误?【英文标题】:opencv_ffmpeg**.dll error in OpenCV 2.4.11 for IP Camera Access? 【发布时间】:2015-05-04 18:34:00 【问题描述】:

我尝试在 Windows 上使用 OpenCv 2.4.11 从我的 IP 摄像机获取实时流。但是,它会引发错误,并且当我调试访问发生时 Unhandled exception at 0x0000000066E5377F (opencv_ffmpeg2411_64.dll) in opencvAxisExp.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

我使用下面的代码这样做;

#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int, char**) 
    cv::VideoCapture vcap;
    cv::Mat image;

    // This works on a D-Link CDS-932L

    //const std::string videoStreamAddress = "http://user:pass@ip_address:port/axis-cgi/jpg/image.cgi?camera=1&resolution=320x240&compression=25 ";
    const std::string videoStreamAddress = "http:/user:pass@ip_address:port/axis-cgi/mjpg/video.cgi";
    //open the video stream and make sure it's opened
    if (!vcap.open(videoStreamAddress)) 
        std::cout << "Error opening video stream or file" << std::endl;
        return -1;
    

    for (;;) 
        if (!vcap.read(image)) 
            std::cout << "No frame" << std::endl;
            cv::waitKey();
        
        cv::imshow("Output Window", image);

        if (cv::waitKey(1) >= 0) break;
    


这是一个 dll 错误还是这里缺少什么?你有什么建议吗?感谢您的任何评论。

【问题讨论】:

崩溃究竟发生在哪一行? @Antonio 在第一个 if 语句 (我无法帮助您解决问题)编辑您的问题以指定这条重要信息。 【参考方案1】:

我猜您可能缺少mjpg 后缀。看到这个answer。

【讨论】:

以上是关于用于 IP 摄像机访问的 OpenCV 2.4.11 中的 opencv_ffmpeg**.dll 错误?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 无法流式传输 IP 摄像机

通过opencv和c ++从ip摄像头流式传输视频

cv::VideoCapture 适用于网络摄像头,但不适用于 IP 摄像头?

带有 IP 摄像机的 OpenCV 问题

带有 opencv 的 IP 摄像机:错误 ffmpeg

使用 OpenCv 和多线程从 IP 摄像机提供实时视频