读取海康威视摄像头实时显示视频流

提示:文章用于学习记录


前言

  • 摄像头一般有网线和电源线两个接口,如下图所示,

  • 用网线将摄像头与电脑连接在一起,电源接口连接适配器。

    在这里插入图片描述


一、设置同一网段

  • 在“网络和Internet”->“以太网”中,点击“编辑”,

  • 保证跟电脑跟摄像机的 IP 为同一个网段,并且 IP 不会冲突。如下图所示:

    在这里插入图片描述

  • 海康摄像头的默认 IP 是192.168.1.64,直接在网页输入192.168.1.64 进入海康威视的登录页面,

  • 用户名默认为 admin,密码需要进行一个重置激活操作。

    在这里插入图片描述

二、密码重置

  • 下载密码重置助手
    在这里插入图片描述

  • 通过设备型号或者 IP 地址识别相应设备,勾选设备,

  • 确保设备使用 DHCP 勾选启用,输入管理员密码进行修改并刷新,密码重置之后即可登录。

    在这里插入图片描述

  • 设备网络搜索 SADPTool,是一款用于海康威视搭载的一款局域网设备搜索的工具软件。

  • 这款软件可以搜索同一局域网内所有在线的设备,并且可以显示设备的相关信息。

  • SADPTool 使用简单,功能实用,能够修改设备的缺省密码,修改网络ip地址和端口号,子网掩码及网关地址等等。

    在这里插入图片描述

  • 首先用快捷键 win+R 调出运行命令框,输入 cmd,点击确定,会弹出 DOS 窗口。

    在这里插入图片描述

  • ping命令的应用格式:ping IP 地址,试 ping 一下摄像机的 IP 地址192.168.1.64,

  • 如下图所示,发现可以 ping 通,发送数据包的大小默认为32字节,从发出数据包到接受到返回数据包所用的时间小于1ms,TTL 表示生存时间值。

    在这里插入图片描述

  • 重新在电脑的浏览器地址栏中输入摄像机的 IP 地址192.168.1.64,

  • 发现可以进去了,登录后就可以查看摄像机的画面了。

    在这里插入图片描述

  • 点击配置中的系统配置,可以进行与计算机时间同步的时间配置。

    在这里插入图片描述

  • 点击配置中的视音频,可以对视频的分辨率,视频帧率进行设置。

    在这里插入图片描述

三、VLC 读取视频流

  • 下载 VLC media player 进行安装,
  • 选择菜单栏:媒体 - 打开网络串流,输入RTSP点击播放即可。
  • 目前海康威视摄像头,网络球机的RTSP取流格式如下:
  • rtsp://用户名:密码@IP:554
  • 用户名是admin,密码为前面重置密码,海康威视摄像头的默认 IP 是192.168.1.64
    在这里插入图片描述
    在这里插入图片描述

四、opencv 读取视频流

  • videoCapture 方法表示读取摄像头的视频流,

  • 参数 rtsp://admin:xxxxxxxx@192.168.1.108 读取视频流,参数0表示读取默认摄像头,

  • cap.read() 读取视频流方法会返回来两个返回值,

  • ret 表示是否成功获取视频流,需要对 ret 是否存在进行判断,

  • 第二个返回值 frame 是每一帧的画面,

  • 使用 imshow 方法将捕获画面显示出来,

  • 最后通过监听用户行为,判断用户是否按下 q 键,如果用户按下q键来执行退出循环,

  • 退出循环后,需要释从内存中将 cap 对象进行释放。

  • 也可以在输出每一帧画面前,对画面进行处理,

  • 这里通过 cvtColor 读取 frame 视频流,

  • 根据指定第二个参数 cv2.COLOR_BGR2GRAY 将视频流数据转换为灰度图片,

  • 然后通过 cap 的 isOpened 方法来判断是否成功开始捕获到图片。

    import cv2
    cap =cv2.VideoCapture("rtsp://admin:xxxxxxxx@192.168.1.108")
    while(cap.isOpened()):
    	ret, frame = cap.read()
    	gray = cv2.cvtColor(frame, CV2.COLOR BGR2GRAY)
    	cv2.imshow(frame',gray)
    	
    	if cv2.waitKey(1) & 0xFF == ord('q):
    		break
    cap.release()
    cv2destroyAllWindows()
    
  • 视频检测

    HIKVISION

总结

以上就是读取海康威视摄像头实时显示视频流的学习过程。
  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 要实现java海康威视摄像头实时预览视频流保存到指定文件中,需要先安装海康威视的SDK,并使用Java SDK开发工具包中的类库来开发应用程序。 首先,在应用程序中引入海康威视的SDK库,包括HCNetSDK.dll、PlayCtrl.dll、HCAlarm.dll等。然后,使用HCNetSDK类库中提供的方法来实现视频流实时预览功能,并将预览的视频流通过PlayCtrl.dll中提供的方法进行渲染和显示。 同时,在将视频流保存到指定文件时,可以使用Java中的IO流进行文件操作。首先在程序中创建File对象指定文件路径,然后使用FileOutputStream类创建输出流对象,通过读取预览视频流数据的byte数组并将其写入到输出流中实现将视频流保存到文件的功能。 需要注意的是,保存到文件时,时间戳的处理,文件格式等问题都需要按照实际需求进行处理。 总之,要实现java海康威视摄像头实时预览视频流保存到指定文件中,需要结合使用海康威视的SDK和Java SDK开发工具包,具体实现过程需要根据实际情况灵活处理。 ### 回答2: Java是一种广泛应用于各种领域的高级编程语言,海康威视摄像头是一种高清晰度的视频监控设备。如何实现将海康威视摄像头实时预览视频流保存到指定文件中呢?下面以Java编程语言为主体进行分析探讨。 首先,需要了解Java的多媒体相关类库和海康威视摄像头的API接口。Java多媒体相关类库包括javax.sound.sampled和javax.media包。javax.sound.sampled是Java音频API,可以处理音频文件的读、写、播放和录制等操作;javax.media则是Java多媒体API,可以处理音频、视频和图像等媒体数据。海康威视摄像头的API接口包括SDK、HCNetSDK和PlayCtrl等。 其次,需要进行海康威视摄像头实时预览视频流以及保存到指定文件中的操作。具体步骤如下: 1. 初始化海康威视摄像头SDK,包括设备登录、设备初始化和预览四个步骤。设备登录是使用设备账号密码进行登录,设备初始化是对设备进行初始化设置,预览则是打开视频流并进行播放。 2. 在预览中添加截图功能,通过调用SDK中的抓图函数将视频帧数据保存到内存中的一个缓冲区中。抓取一帧数据需要使用NET_DVR_CaptureJPEGPicture_V30函数,并将数据放置到指定的缓存区。 3. 将缓冲区中的数据保存到本地文件中。在Java中可以使用BufferedImage类来保存JPEG图像数据,使用ImageIO类将缓冲区中的图像数据保存到指定的文件中。 4. 关闭设备预览,退出SDK。 需要注意的是,保存视频流到文件中需要根据需求进行设置参数,包括视频流的编码格式、分辨率、帧率等。在进行保存时还应该进行异常处理,例如文件不存在、写入失败等异常情况的处理。 总之,Java实现海康威视摄像头实时预览视频流保存到指定文件中需要进行多项操作,包括海康威视SDK的初始化和调用、截图和保存等。具体操作可以根据实际需要进行调整和修改,最终实现预览视频流保存到文件的功能。 ### 回答3: java是一种广泛使用的编程语言,可用于开发各种应用程序,包括与摄像头相关的应用程序。海康威视(Hikvision)是一家专业从事视频监控设备制造的企业,提供多种摄像头系列产品。本文将介绍如何使用java编写程序,实现海康威视摄像头实时预览视频流,并将视频流保存到指定文件中。 首先,要实现海康威视摄像头实时预览视频流,需要使用其提供的软件开发包(SDK),该SDK提供了一组API,用于控制海康威视摄像头的各种功能。在使用SDK前,需要先在操作系统中安装相关依赖库,并且在开发环境中配置好SDK相关参数。 接下来,我们需要按照以下步骤编写java程序: 1.引入SDK相关jar包,并创建SDK实例。 import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.NativeLongByReference; import com.sun.jna.ptr.PointerByReference; import com.hikvision.netsdk.*; public class HikvisionTest { private HCNetSDK hCNetSDK; public static void main(String[] args) { HikvisionTest test = new HikvisionTest(); test.init(); test.preview(); } public void init() { hCNetSDK = HCNetSDK.INSTANCE; boolean initSuc = hCNetSDK.NET_DVR_Init(); if(!initSuc) { System.out.println("SDK初始化失败"); } } public void preview() { int userId = -1; HCNetSDK.NET_DVR_DEVICEINFO_V30 devInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30(); NativeLong lRealHandle = new NativeLong(-1); NativeLong lLoginHandle = hCNetSDK.NET_DVR_Login_V30("10.10.10.1", 8000, "admin", "password", devInfo); if(lLoginHandle.longValue() < 0) { System.out.println("登录失败"); return; } HCNetSDK.NET_DVR_PREVIEWINFO previewInfo = new HCNetSDK.NET_DVR_PREVIEWINFO(); previewInfo.lChannel = 1; previewInfo.dwStreamType = 0; previewInfo.dwLinkMode = 0x80000000; Pointer hPlayWnd = null;//播放窗口句柄,为null表示不播放画面,只预览数据 lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(lLoginHandle, previewInfo, null); if(lRealHandle.longValue() < 0) { System.out.println("预览失败"); return; } //TODO: 在这里添加保存视频流到文件的代码 } } 2.登录网络摄像头,并开启实时预览。 在上述代码中,我们调用了NET_DVR_Login_V30方法登录摄像头设备,该方法返回登录句柄,如果登录失败则返回-1。登录成功后,我们可以通过NET_DVR_RealPlay_V40方法开启实时预览功能,该方法调用后返回实时预览句柄,如果开启预览失败则返回-1。在实时预览时,我们可以指定播放窗口句柄,如果传入null则表示只预览不播放。 3.将视频流保存到指定文件中。 要将视频流保存到指定文件中,我们可以在预览时添加代码,调用NET_DVR_SaveRealData保存视频流数据。 hCNetSDK.NET_DVR_SaveRealData(lRealHandle, "D:\\video\\test.mp4"); 以上代码将把视频流数据保存到指定文件路径(D:\\video\\test.mp4)中。 另外,为了保证视频流数据正常保存,还需要添加停止预览和注销登录相关的代码。停止预览时,可以调用NET_DVR_StopRealPlay方法停止实时预览;注销登录时,可以调用NET_DVR_Logout方法注销登录句柄。 总之,使用java编写程序实现海康威视摄像头实时预览视频流并保存视频到指定文件,需要使用海康威视摄像头SDK提供的API来控制摄像头功能,同时需要注意代码的执行顺序和各种参数的设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

701044

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值