由于项目中需要访问多路海康摄像头的原始图像进行相关处理,搜索了大量的博客,对于多路海康摄像头回调都没有写的很清楚明白,看到此博客的你,静下心来研读下面的内容,你将会很容易调取多路海康网络摄像头。

(1)下载海康官网提供的SDK https://www.hikvision.com/cn/download_more_570.html 本人用的是Win64

(2)解压完毕打开“CH-HCNetSDKV5.3.5.46_build20180518_Win64/Demo示例/2- MFC分功能示例/2- 实时流回调解码获取YUV”工程,在*Dlg.cpp文件可以看到很重要的两个回调函数(DecCBFun、fRealDataCallBack),这两个回调函数是实现多路回调的关键所在

(3)如何加载自己的海康网络摄像头,本人整理成一个函数方便大家调用,如下:

需要打开几路摄像头,就需要几个Open,其中Open函数的形参void(CALLBACK *fRealDataCallBack_V30),这个参数便需要填写上面的回调函数fRealDataCallBack,需要访问几路摄像头,就需要有几个fRealDataCallBack(这句话大家可能会产生疑惑),理解如下,先看一下fRealDataCallBack函数源码:

这里要特别关注两个参数(nPort、DecCBFun),发现这两个参数都不是fRealDataCallBack的形参,nPort参数可看作是全局变量,DecCBFun又是一个回调函数,因此出现了回调函数再调用回调函数的现象,蛮有趣,这类情形至今我只见过海康这样用,学到了。对于nPort的理解,个人猜想它是不同路摄像头的标识,即所加载的多路摄像头,每路摄像头对应的nPort返回值不同。

(4)我们再来查看DecCBFun回调函数源码:

会发现nPort居然是DecCBFun的形参,而且这个回调函数中将海康的图像数据转换成了YUV数据,看到YUV数据是不是很开心呢,因为可以用opencv将YUV转换到RGB图像,从而将海康数据流取出来用于后续数据处理。

假如上面的猜测成立,则有几路摄像头就应该对应几个nPort,因此回到最初的理解,有几路摄像头就应该有几个Open,有几个Open就应该有几个fRealDataCallBack,有几个fRealDataCallBack就应该有几个nPort,是不是也应该有几个DecCBFun呢?

最初我在系统开发中就用了多个DecCBFun,发现对于更多路的摄像头时CPU吃不消,原来只需要用一个DecCBFun就可以了,这里要将nPort利用上,比如我们做九路海康摄像头回调,便可将DecCBFun修改为如下:

此时CPU利用率较低,贼爽,成功实现了多路海康摄像头回调,并实时传出opencv格式数据用于后续处理。

后台接到很多朋友需要对应的源码,特此将源码开源出来,供大家学习哈

多路海康网络摄像头数据实时回调(采用软解码方式)相关推荐

  1. python调用海康网络摄像头,实时显示监控内容

    用网线将海康威视摄像头与电脑连接在一起:(或者用交换机,在一个交换机下面) 海康摄像头的默认ip是192.168.1.64 效果:和通过海康摄像头网址效果一样 rtsp://用户名:密码@ip地址/S ...

  2. JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调录像回放视频PS码流并解析预览图像

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 ​ 前言 上一章中<JavaCV音视频开发宝典:使用JavaCV读取海康平台或海 ...

  3. [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控

    [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1.  基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...

  4. 海康网络摄像头忘记密码_不要忘记网络性能

    海康网络摄像头忘记密码 Amazon released a famous statement in the late 2000s stating that every hundred millisec ...

  5. 海康网络摄像头android,海康网络摄像头的Android端Demo

    [实例简介]海康网络摄像头的Android端Demo; 可实现通过wifi实时读取并显示摄像头捕捉的画面; [实例截图] [核心代码] /** * DemoActivity Class * @auth ...

  6. 海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg)

    海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg) 实现思路 获取摄像头rtsp流→流媒体拉流转码推流成rtmp流(网页具备flash可播放)→根据rtmp流地 ...

  7. ubuntu 使用opencv 获取海康网络摄像头视频流

    1. 前言 之前在windows平台下使用opencv获取海康网络摄像头的视频流,但是不管怎么设置都无法登录摄像头,导致无法获取摄像头的视频流,但是换到ubuntu又正常了,主要是设置rtsp的格式, ...

  8. 网络摄像头转usb接口_同时读取多个摄像头数据(包括海康网络摄像头和USB摄像头)...

    一.功能 1.实现多个摄像头同时获取图像,并保存到个各自目录 2.摄像头类别包括海康RSTP协议网络摄像头和普通USB摄像头 3.可自动和手动保存图片 二.注意事项 1.python可以使用multi ...

  9. JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解析预览图像

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 ​ 前言 两年前博主写了如何利用JavaCV解析各种h264裸流,<JavaCV ...

最新文章

  1. BLAST数据库搜索
  2. 一年75次上微博热搜!宇宙首富Tony老师上线!马斯克DIY发型
  3. 注射“基因剪刀”治疗罕见遗传病,患者28天内无明显不良反应,诺奖得主很激动...
  4. 查表法生成流水号的示例.sql
  5. java递归遍历删除文件
  6. FLASH的知识【转】
  7. Xml遍历某一节点值
  8. 计算机程序设计实验报告总结,c语言实验总结(大一c语言实验报告总结)
  9. c语言 英文歌曲大赛,英文歌曲大赛活动方案
  10. DrGraph - SVG模块之一:显示与节点选择
  11. linux c 开发 英文简历,软件工程师英文简历范文
  12. Azure上的物联网产品介绍
  13. 5A成绩通过PMP,备考经验总结——姜飞
  14. 一篇联想员工写的:联想不是我的家
  15. A3NCF: An Adaptive Aspect Attention Model for Rating Prediction
  16. idata 单片机 新唐_【nuvoton新唐8051单片机】NuTiny-SDK-N76E003开发板
  17. 编写程序求反正弦函数近似值
  18. 如何成为一名JAVA(高级)工程师
  19. jasper支持哪些html标签,Jasper HTML输出宽度问题(示例代码)
  20. 保险公司真得保险么?

热门文章

  1. Linux常见基础指令详解
  2. 数据库(SQL Server )经典例题(一):对S表、P表、J表、SPJ表的操作——数据库的创建
  3. 能熟练使用计算机并进行必要维护,省计应课程准(参考).doc
  4. 这份2018年终总结PPT模板,你值得使用
  5. 正版软件的价格(微软系列)
  6. gff文件_GTF与GFF文件所有操作尽在这里
  7. DC-DC上电时电压输出尖峰电压
  8. 简单5步,从0开始搭建你的第一款小程序
  9. MRI血管造影技术之最大密度投影法(maximum intensity projection)重建
  10. 化工厂人员定位解决方案,智能化工厂定位系统无所不在-新导智能