海康摄像头开发总结

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

一,海康的监控摄像头。nginx

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

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

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


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

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位的。