之前在windows平台下使用opencv获取海康网络摄像头的视频流,但是不管怎么设置都无法登录摄像头,导致无法获取摄像头的视频流,但是换到ubuntu又正常了,主要是设置rtsp的格式,然后调用opencv的获取视频流的接口就行了。
#include
#include
#include "HKCapture.hpp"
using namespace cv;
using namespace std;
int main()
{
//参照海康获取网络摄像头视频流的格式
String url = "rtsp://admin:password@IP:554/Streaming/Channels/101";
HKCapture cap;
Mat img = cap.GetFrame(url);
imshow("img", img);
waitKey(0);
return 0;
}
#include
#include
using namespace cv;
class HKCapture
{
public:
Mat GetFrame(String url);
};
#include "HKCapture.hpp"
#include
#include "string.h"
Mat HKCapture::GetFrame(String url)
{
//读取视频或摄像头
VideoCapture capture(url);
if(!capture.isOpened())
{
printf("capture open failed!");
}
Mat frame;
while (true)
{
capture >> frame;
if(frame.empty())
{
continue;
}
else
{
break;
}
}
// imshow("读取视频", frame);
// waitKey(30); //延时30
return frame;
}