QT5 + opencv3.4.6 做的rtsp流读取问题

在VLC中可以正常访问的rtsp流


图片说明

代码中无法访问,请大神指点一下问题谢谢!

    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(getframe()));

    _videocap = cv::VideoCapture("rtsp://admin:123!@192.168.1.6");//大门摄像头
    qDebug() << "1111:" << _videocap.isOpened();

    double rate= _videocap.get(CV_CAP_PROP_FPS);
    qDebug() << "rate:" << rate;

    timer->start(33);//为避免出现延时累积,每33毫秒刷新界面

槽函数:

void CCamera::getframe()
{
    _videocap.read(_srcImge);//获取到一帧

    if(!_srcImge.data)//如果取不到数据,终止计时器
        timer->stop();

    Size dsize = Size(ui->LabDisp->width(), ui->LabDisp->height());
    cv::resize(_srcImge, _srcImge, dsize);

    cvtColor(_srcImge,_srcImge,CV_BGR2RGB);//这种更方便好用
    QImage image2=QImage((const unsigned char*)_srcImge.data,_srcImge.cols,_srcImge.rows,QImage::Format_RGB888);
    ui->LabDisp->setPixmap(QPixmap::fromImage(image2));
}

报错如下:

16:33:13: Starting E:\QT_src\build-CameraDisplay-Desktop_Qt_5_9_9_MinGW_32bit-Debug\debug\CameraDisplay.exe ...
1111: false
rate: 0
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(3.4.6) Error: Assertion failed (!ssize.empty()) in resize, file D:\opencv3.4.6\opencv\sources\modules\imgproc\src\resize.cpp, line 3718

虽然报错是opencv的resize函数问题,但我不清楚是不是这儿有问题。原因是写了个加载图片的demo是正常的。
我查了一下,说路径不对的很多,但是我这里似乎不是这个问题啊?

把编译目录下的bin文件夹总的opencv_ffmpeg*.dll(*代表版本号,如3.4.5,就是opencv_ffmpeg345.dll)拷贝到exe所在路径或者环境变量目录下。再试一下

请问楼主解决了吗?我也是同样的问题

https://blog.csdn.net/cyf15238622067/article/details/89334779