在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是正常的。
我查了一下,说路径不对的很多,但是我这里似乎不是这个问题啊?