EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
本文转自博客:http://blog.csdn.net/xinlanbobo/article/details/53156742
近期工作中需要开发一套视频监控系统,实现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取流。
下图是预览海康摄像机的截图:
获取更多信息
Copyright © EasyDarwin.org 2012-2016

EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端的更多相关文章
- 【视频开发】EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
近期工作中需要开发一套视频监控系统,实现WEB端.手机APP端预览局域网内的道路监控摄像机,我负责一些后台服务的开发工作. 由于之前项目中的程序都是采用私有协议.各摄像机厂商的SDK进行视频监控系统开 ...
- 海康&大华&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安防摄像机(海康大华宇视等)如何推送到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海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)
背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...
- 将海康大华等网络摄像机RTSP流进行网页Flash rtmp和H5 hls直播的技术方案
前言 再小的技术点也会有他的市场! 一直以来,都有一些不被看好,认为是成本太高,无法大规模展开的软件和产品形态,就好比每一座城市都会有他的著名小吃一样,即使是慕名而来的人源源不断,受众群体也总是有限, ...
随机推荐
- 我要好offer之 网络大总结
1. TCP协议的状态机 TCP一共定义了11种状态,这些状态可以使用 netstat 命令查看 @左耳朵耗子 tcp系列教程: 上篇 下篇 2. TCP建立连接3次握手.释放连接4次握手 TCP包头 ...
- C语言实现DES算法
原文转自 http://www.cnblogs.com/imapla/archive/2012/09/07/2674788.html 用C语言实现DES(数据加密算法)的一个例子,密文和密钥都是8个字 ...
- 在4418平台上如何配置GPIO口的状态
硬件 ------------------------------------------------------------------------------------------------- ...
- 在AxureRP8中实现广告文字滚动效果
本文是实现动态文字在一个区域中滚动的效果,大概实现过程如下: 先准备一个区域,然后让文字在该区域内水平移动,本文是实现了从右到左的轮询的效果,其他雷同. 在Axure中,这种移动的过程需要动态移动,利 ...
- [深入学习C#]C#实现多线程的方式:Task——任务
简介 .NET 4包含新名称空间System.Threading.Tasks,它 包含的类抽象出了线程功能. 在后台使用ThreadPool. 任务表示应完成的某个单元的工作. 这个单元的工作可以在单 ...
- js-键盘回车搜索enter
这个问题需求在移动版上经常用到. <div class="sousuo"> <input type="text" placeho ...
- SQLite数据库中rowid使用
SQLite数据库中rowid使用 SQLite中每个表都默认包含一个隐藏列rowid,使用WITHOUT ROWID定义的表除外.通常情况下,rowid可以唯一的标记表中的每个记录.表中插入的第 ...
- 泛域名Wildcard Domain
泛域名Wildcard Domain 泛域名Wildcard Domain是一种特殊的域名形式.它使用星号作为域名的一级.例如,*.baidu.com就是使用星号作为域名的二级部分.在域名解析中,一个 ...
- 【Maven jar】打包单个或多个文件,有依赖jar包的将架包一起打包成一个jar包供别的项目引用
之前有一片文章,是打包单个java文件的.这次想要将http://www.cnblogs.com/sxdcgaq8080/p/8398780.html 打包成jar包,发现这个java文件中引用了多 ...
- py3中的文字编码
Python3 中字符的类型只有两种: str: 编码过的 unicode 文本字符 bytes: 编码前的字节序列