近期工作中需要开发一套视频监控系统,实现WEB端、手机APP端预览局域网内的道路监控摄像机,我负责一些后台服务的开发工作。

由于之前项目中的程序都是采用私有协议、各摄像机厂商的SDK进行视频监控系统开发,这种技术方案更适合C/S架构的系统,应用于此次项目存在先天性不足,即手机APP端无法加载摄像机厂商的播放库,无法满足项目需求。另外原有的技术方案,导致WEB端的播放控件非常臃肿,且浏览器兼容性不佳。

鉴于以上原因,我开始寻求一套新的技术方案,在同事的推荐下发现了EasyDarwin开源项目。EasyDarwin让我心里一阵激动,原来国内有这么棒的流媒体开源项目。不但有对各子项目详细的说明、图纸,代码编写也非常规范,而且维护较好,更新率非常高。所以决定好好学习一下。

我选择由EasyIPCamera_RTSP入手。官方介绍此工程以其他IPC硬件(海康、大华、雄迈)提供的RTSP流作为EasyIPCamera的数据源,对外提供RTSPServer功能。即这个程序可以作为一个简单的RTSP服务、并且提供流媒体转发的功能,与我的实际需求较为相近。为了能够编译运行程序,我首先升级安装了VS2010环境(由于公司要求之前一直使用VS2008)。

这个项目的编译还是非常简单的,一次性编译通过。生成的EasyIPCamera_RTSP.exe运行依赖libEasyIPCamera.dll和libEasyRTSPClient.dll两个动态库。前者我理解为一个RTSP和流媒体转发的服务,后者应当起到RTSP客户端的作用,这两个库的源代码,没有在GitHub中找到。

EasyIPCamera_RTSP程序中,主要分以下几步实现:

1)首先通过源代码写死的方式,初始化了两个通道对象,代表两个前端IPC的rtsp串信息。这里我将通道对象改为4个,并在初始化通道对象时,将项目中的海康、大华、宇视等品牌的摄像机信息填入。

2)然后程序激活RTSP客户端,用于向前端IPC取流。

3)启动RTSP和流媒体转发的服务,侦听端口为8554,以回调形式侦听客户端请求。当有通道视频请求时,根据通道信息初始化对应的RTSP客户端,并将取出的视频流转发至请求客户端使用。

重新编译后运行,通过VLC播放器测试效果(打开网络串流,输入URL
rtsp://IP:8554/1,此处的通道号由1开始)。经验证海康、大华、宇视的摄像机(均为道路监控、高清球型摄像机)均能够正常地预览。期间遇到了一个小问题,即大华摄像机预览失败,经Babosa协助,更新了libEasyRTSPClient.dll库后成功解决。貌似是因为rtsp串中对大华设备授权识别未成功,导致IPC无法正常响应码流格式等信息。

如上,使用EasyIPCamera可以非常简单地实现对前端摄像机RTSP取流。

下图是预览海康摄像机的截图:

【视频开发】EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端的更多相关文章

  1. EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端

    本文转自博客:http://blog.csdn.net/xinlanbobo/article/details/53156742 近期工作中需要开发一套视频监控系统,实现WEB端.手机APP端预览局域网 ...

  2. 海康&大华&DSS视频拉流-RTSP转RTMP多媒体播放技术

    海康&大华&DSS获取RTSP 实时流 海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/ ...

  3. 来自iSpy整理的最全海康大华IPC的RTSP连接地址

    来自iSpy整理的最全海康大华IPC的RTSP连接地址 先贴出处: 海康:http://www.ispyconnect.com/man.aspx?n=Hikvision 大华:http://www.i ...

  4. 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)

    背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...

  5. RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播

    方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒 ...

  6. EasyPlayer播放海康大华RTSP流时RTSPClient客户端连接兼容问题的解决

    在之前的博客<EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见>中,我描述了遇到的一个客户在播放大华某款摄像机时地址不兼容的问题,这不,团队刚刚参考我的这个意 ...

  7. 海康/大华 IpCamera RTSP地址和格式

    海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如 ...

  8. 海康大华RTSP格式

    海康实时流:rtsp://admin:12345@192.2.82.50:554/h264/ch4/main/av_stream海康回放流(模拟通道):rtsp://admin:12345@192.2 ...

  9. 将海康大华等网络摄像机RTSP流进行网页Flash rtmp和H5 hls直播的技术方案

    前言 再小的技术点也会有他的市场! 一直以来,都有一些不被看好,认为是成本太高,无法大规模展开的软件和产品形态,就好比每一座城市都会有他的著名小吃一样,即使是慕名而来的人源源不断,受众群体也总是有限, ...

随机推荐

  1. Redis.Memcache和MongoDB区别?

    Memcached的优势: Memcached可以利用多核优势,单吞吐量极高,可以达到几十万QPS(取决于Key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右.)适用 ...

  2. eclipse正常启动,debug无法启动,解决办法

  3. vue中引入.svg图标,使用iconfont图标库

    阿里巴巴的iconfont是一个很好的图标库,海量的素材可以快速满足开发人员日常对图标的诉求,我们采用symbol引用,官方介绍 创建SvgIcon组件 <template> <sv ...

  4. Python应用-完成简单邮件发送功能

    项目中有时候需要用脚本来自动发送邮件,而用Python来发送邮件十分的方便,代码如下: #!/usr/bin/python #coding:utf-8 import smtplib from emai ...

  5. object store in javascript

  6. GITHUB常见命令

    1 常用 $ git remote add origin git@github.com:yeszao/dofiler.git # 配置远程git版本库 $ git pull origin master ...

  7. python - django 实现文件下载功能

    使用 Django 搭建的网站中添加一个可以从服务器中下载文件的功能 (此处演示一个从网站中下载API文档的例子供参考) # 一.url  urlpatterns = [ # 下载 API 接口文档 ...

  8. 优雅关闭web服务的方式

    优雅关闭web服务 DBHelper, err = gorm.Open("mysql", "root:root@(115.159.59.129:3306)/test?ch ...

  9. 【洛谷P4319】 变化的道路 线段树分治+LCT

    最近学了一下线段树分治,感觉还蛮好用... 如果正常动态维护最大生成树的话用 LCT 就行,但是这里还有时间这一维的限制. 所以,我们就把每条边放到以时间为轴的线段树的节点上,然后写一个可撤销 LCT ...

  10. WinDbg常用命令系列---反汇编u*

    u, ub, uu (Unassemble) u*命令显示内存中指定程序代码的汇编转换.不要将此命令与~u(解冻线程)命令混淆. u[u|b] Range u[u|b] Address u[u|b] ...