一、windows连接
因为本人手残,不小心更改了网络摄像头的ipv4地址,导致摄像头连接不上了
解决办法:
1、打开海康威视官网下载的软件iVMS,在软件左侧找到 设备管理–>设备–>在线设备,可以看到更改ip之后的网络摄像头的信息出现了,
在其中找到最左侧的IPv4信息,就可以看到自己更改之后的ip地址。点击最右侧的操作下边的地球形状的按钮,可以看到修改网络参数。
2、知道这个ip之后,就可以去windows中设置ip了。
右键桌面右下角的wifi图标,选择 打开网络和Internet设置,找到高级网络配置下放的更改适配器选项,找到以太网选项,右键选择属性,在网络这一栏里选择Internet协议版本4(TCP/IPV4),选中之后点击属性,选择使用下面的IP地址,填写ip地址和子网掩码即可。
需要注意的是,ip地址的前三位需要跟网络摄像机的ip地址相同,最后一位不能相同,简单举例:网络摄像头的ip地址是123.45.66.7,那么windows上设置的ip地址就应该是123.45.66.x,这个x不能是7,可以是别的,比如0、1、2、3等非7数字。
感谢这位大佬的文章解惑海康威视网络摄像头网线直连电脑
填写完成之后,点击确定 确定即可(两次确定)。
3、这时返回到iVMS中,点击刷新就可以看到网络状态显示在线。
二、在windows下使用opencv读取海康威视网络摄像头
直接贴代码吧
#include <opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
int main()
{
cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_ERROR);//只输出错误日志
const int imageWidth = 1280; // 摄像头的分辨率
const int imageHeight = 720;
// url格式为:“rtsp ://用户名:密码@网络IP:RTSP端口/Streaming/Channels/1”
std::string url = "rtsp://用户名:密码@网络IP:RTSP端口/Streaming/Channels/1"; //换成自己的
cv::VideoCapture cap(url);
cv::Mat cvImg;
// cap的这两条set据说可以减缓显示的延迟,我试着是有点效果的
cap.set(cv::CAP_PROP_BUFFERSIZE, 3);
cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));
cv::namedWindow("cap", cv::WINDOW_NORMAL);
bool read_ok = false;
bool cap_open = cap.isOpened();
std::cout << "cap_open: " << cap_open << std::endl;
while (cap.isOpened())
{
try
{
read_ok = cap.read(cvImg);
if (read_ok)
{
if (cvImg.data)
{
cv::imshow("cap", cvImg);
}
int key = cv::waitKey(1);
if (key == 27)
break;
}
else
{
std::cout << "read failure." << std::endl;
break;
}
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
}
cvImg.release();
cap.release();
cv::destroyAllWindows();
return 0;
}
三、orin nx使用海康威视网络摄像头
1、将网络摄像头的网口插在orin nx上的Gige1这个接口上。
2、在orin nx中点击左上角的关机键,选择Settings,在Network这一栏中找到Wired,点击齿轮模样的按钮,设置IPv4,其中IPv4 Method选择Manual,手动输入ip中的address、netmask(我跟windows上设置的一样),gateway这一栏我没有输入。
3、在visual studio code中打开二里的代码,cmake make之后运行可执行文件即可打开网络摄像头。
注意:我以前给orin nx联网都是通过usb联网的,所以用网络摄像头的时候需要把这个wifi给拔掉,这样网络摄像头就可以用了。
用ifconfig指令查看ip地址
没有拔掉网卡之前直接运行程序的话,会提示错误no route to host
我搜了一下,没有合适的解决办法 尝试了两种方法:
1、etc/network/interfaces 更改相应配置,但是搜了一下说ubuntu20这样设置没啥用
2、etc里边的netplan之类的,我直接没找到。。。