【视频开发】EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
近期工作中需要开发一套视频监控系统,实现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接入弊端的更多相关文章
- EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
本文转自博客:http://blog.csdn.net/xinlanbobo/article/details/53156742 近期工作中需要开发一套视频监控系统,实现WEB端.手机APP端预览局域网 ...
- 海康&大华&DSS视频拉流-RTSP转RTMP多媒体播放技术
海康&大华&DSS获取RTSP 实时流 海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/ ...
- 来自iSpy整理的最全海康大华IPC的RTSP连接地址
来自iSpy整理的最全海康大华IPC的RTSP连接地址 先贴出处: 海康:http://www.ispyconnect.com/man.aspx?n=Hikvision 大华:http://www.i ...
- 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)
背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...
- RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒 ...
- EasyPlayer播放海康大华RTSP流时RTSPClient客户端连接兼容问题的解决
在之前的博客<EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见>中,我描述了遇到的一个客户在播放大华某款摄像机时地址不兼容的问题,这不,团队刚刚参考我的这个意 ...
- 海康/大华 IpCamera RTSP地址和格式
海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如 ...
- 海康大华RTSP格式
海康实时流:rtsp://admin:12345@192.2.82.50:554/h264/ch4/main/av_stream海康回放流(模拟通道):rtsp://admin:12345@192.2 ...
- 将海康大华等网络摄像机RTSP流进行网页Flash rtmp和H5 hls直播的技术方案
前言 再小的技术点也会有他的市场! 一直以来,都有一些不被看好,认为是成本太高,无法大规模展开的软件和产品形态,就好比每一座城市都会有他的著名小吃一样,即使是慕名而来的人源源不断,受众群体也总是有限, ...
随机推荐
- 编程小白入门分享四:Vue的安装及使用快速入门
一.VUE简介 vue是一个JavaMVVM库,是一套用于构建用户界面的渐进式框架,是初创项目的首选前端框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计.它是轻量级的,它有很多独立 ...
- python练习题(四)
题目: 根据一个字符串返回一个ip数组,按照ip最后一位排序, 字符串: str = 'ss192.0.0.12?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.5' ...
- Python 3的 bytes 数据类型
"""b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'代表这是一个字节窜,\x代表十六进制表示 e6是十 ...
- ActiveMQ基础
消息队列的作用 为什么使用ActiveMQ,不使用其他工具 下载安装包并启动 http://localhost:8161/admin/ (账号:admin:admin) Java实现步骤: // 1. ...
- 《vue》实现动态显示与隐藏底部导航方法!
在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显示与隐藏的两种方式: 其实很简单,我们在路由里面带上参数,这个参数就用来区分那个页面显示 ...
- junit4的初级用法
junit4初级用法: 一:各个标签的意思 1.@Test用来标注测试函数 2.@Before用来标注此函数在每次测试函数运行之前运行(每执行一个@Test之前都要运行一遍@Before) 3.@Af ...
- HTML事件(onclick、onmouseover、onmouseout、this)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 洛谷 题解 P1828 【香甜的黄油 Sweet Butter】
潇洒の开始 第一步:食用头文件和定义变量, 变量干什么用的说的很清楚 #include<iostream> #include<cstdio> #include<cstri ...
- HTML5之图片在Retina屏的常用几种处理方式
Media Queries使用css3的媒体查询实现高清屏的图片处理. @media only screen and (-webkit-min-device-pixel-ratio: 1.5), on ...
- Linux最大线程数限制
开始以为是内存不足导致无法创建线程,把jvm的-Xms,-Xmx的2个参数都加大一倍:-Xms2048m -Xmx2048m.把-Xss参数调小,还是启动失败.应该是系统方面的限制了,这台机器上搞了1 ...