海康摄像头开发总结

由于公司项目需求,需要做摄像头,门禁,刷卡取电等功能。我主要负责硬件与javaweb平台对接这一块,下面说说我对java与硬件对接的总结。

一,海康的监控摄像头。

目前国内的监控摄像头提供的摄像头一般只支持 rtsp协议的数据流,只有少部分公司支持rtmp协议的视频数据流。由于flush插件只支持rtmp协议,所以,在这一点上,要做b/s结构的架构,是不能直接调用 rtsp 视频数据流的。要在浏览器上播放海康监控视频,只有两种方式。

1,vlc控件,或activity控件能直接播放 rtsp 流。其中,vlc控件支持火狐浏览器,ie9及以上内核浏览器。谷歌浏览器不支持。

2,用ffmpeg做转流处理,将rtsp流 推送到 nginx-rtmp服务器上,这样所有安装flush的浏览器都能播放。


以上两种方式,各有利弊。

1,用控件的方式

利:开发方便,不需要搭建nginx-rtmp服务器,播放流畅。

弊:搭建流媒体服务器(nginx-rtmp服务器)硬件成本高,因为视频服务器需要处理的视频数据太多,要求服务器网速,cpu性能强。

2,用 ffmpeg + nginx-rtmp 转流 的方式

利:几乎支持所有安装flush插件的浏览器,用户体验更好

弊:成本和开发难度更大(其实也不大,只要公司能提供性能好的流媒体服务器)


二,java调用dll文件

1,配置环境永远是一个问题,大致有4中方法调用dll。

(1) 将dll文件放在jdk/jre/bin 下  ,注意 是jdk下面的jre中,有关jdk,jre的知识,自行百度。

 (2)将dll文件放在tomcat 里的bin文件里

  (3)在 path ,java环境变量中配置

(4 ) 在实例接口是,写dll文件的绝对或相对路径

个人建议,就放在jdk/jre/bin下,因为简单



总结,java调用dll文件,有jni和jna两种方式,其中jna是对jni的简单封装框架。

    在运行时,经常会遇到  "“不安全的动态链接库异常”,你可以尝试,重启电脑以及检查dll文件和jdk是否同时64位或32位的。




你可能感兴趣的:(java语言)