基于EasyDarwin实现幼儿园监控类项目
2015-08-05 23:56
288 查看
移动互联网越来越普及,幼儿园监控类的项目也越来越多,如何能够以最低的成本、最快的速度搭建一套幼儿园监控类的平台成了许多开发者的需求,那么我们今天就来简单探讨一下如何基于EasyDarwin实现一套幼儿园监控、宝贝在线视频类的流媒体系统平台。
1、流媒体分发:幼儿园监控不同于我们传统意义上的家居监控,家居监控因为同时观看的终端数量有限,多采用p2p的形式,但幼儿园监控里面,同一个摄像机可能会被很多家长同时观看,所以多采用流媒体服务器转发的形式来做,那么就需要用到我们的EasyDarwin流媒体服务器进行转发和分发;
2、前端架构:这需要做两方面的区分,老设备接入和新设备集成,我们现在大部分幼儿园在接入移动互联网监控之前已经有了比较完善的传统监控系统,也就是说设备(DVR、IPC、NVR)已经固定了,如果硬件换代,势必会增加很大成本,或者说是新设备,但没有没有设备改造的权限,只能以标准Onvif/RTSP/SDK的形式控制设备,所以在这些模式下,我们多是采用加中间适配层来实现的,也就是说在内网摄像机与公网平台之间需要加一台设备来做摄像机接入,可以用简单PC的形式来做,也可以用自己开发的嵌入式盒子来实现(这个接入的形式我们在《关于Darwin接入私有协议、私有SDK码流的讨论》有过讨论):
那么具体的平台接入方法实现,我们可以参考EasyDarwin开源项目中的EasyCamera实现:
设备与公网平台的信令接入可以用开源的libEasyCMS实现,设备与流媒体服务器之间的流媒体推送可以用libEasyPusher实现,至于EasyCamera内部与设备怎么对接,用户可以根据自己的需求去选择,无论是上图中描述的SDK接设备,还是Onvif接设备,还是简单的RTSP接设备(RTSP接入设备我们还有libEasyNVSource库帮忙),都可以;
3、平台部分:平台部分就更容易了,EasyDarwin开源项目(https://github.com/EasyDarwin/EasyDarwin)都可以用到(包括CMS中心管理服务器、EasyDarwin流媒体服务器),只要稍稍熟悉一下代码,就能很轻松将自己定义的协议流程加入进去,也可以直接就用EasyDarwin提供的协议版本,省去了大量的开发成本;
EasyDarwin流媒体服务器还能支持多种流媒体协议输出:RTSP、HLS、RTMP,这样对多平台需要的安卓、ios、web、微信直播,都能全部支持了;
4、客户端部分:如果采用传统C/S架构,我们可以选择EasyPlayer开源流媒体播放器(RTSP播放器)进行直播播放;如果你用的是WEB客户端,那么你可以采用EasyDarwin输出RTMP直播协议的,或者如果你的延时要求不高,就可以采用EasyDarwin输出的HLS协议;如果你是做手机直播,你可以采用HLS、RTSP、RTMP中的任何一种,如果是做手机WEB App,可以选择EasyDarwin HLS输出;如果你想用微信平台做这个项目,那可以选择HLS,完全支持微信直播;
就是这样,功能组件都可以用上,主要是需要熟悉架构和使用的方法!
本文转自www.easydarwin.org,更多开源流媒体解决方案,请关注我们的微信:EasyDarwin
1、流媒体分发:幼儿园监控不同于我们传统意义上的家居监控,家居监控因为同时观看的终端数量有限,多采用p2p的形式,但幼儿园监控里面,同一个摄像机可能会被很多家长同时观看,所以多采用流媒体服务器转发的形式来做,那么就需要用到我们的EasyDarwin流媒体服务器进行转发和分发;
2、前端架构:这需要做两方面的区分,老设备接入和新设备集成,我们现在大部分幼儿园在接入移动互联网监控之前已经有了比较完善的传统监控系统,也就是说设备(DVR、IPC、NVR)已经固定了,如果硬件换代,势必会增加很大成本,或者说是新设备,但没有没有设备改造的权限,只能以标准Onvif/RTSP/SDK的形式控制设备,所以在这些模式下,我们多是采用加中间适配层来实现的,也就是说在内网摄像机与公网平台之间需要加一台设备来做摄像机接入,可以用简单PC的形式来做,也可以用自己开发的嵌入式盒子来实现(这个接入的形式我们在《关于Darwin接入私有协议、私有SDK码流的讨论》有过讨论):
那么具体的平台接入方法实现,我们可以参考EasyDarwin开源项目中的EasyCamera实现:
设备与公网平台的信令接入可以用开源的libEasyCMS实现,设备与流媒体服务器之间的流媒体推送可以用libEasyPusher实现,至于EasyCamera内部与设备怎么对接,用户可以根据自己的需求去选择,无论是上图中描述的SDK接设备,还是Onvif接设备,还是简单的RTSP接设备(RTSP接入设备我们还有libEasyNVSource库帮忙),都可以;
3、平台部分:平台部分就更容易了,EasyDarwin开源项目(https://github.com/EasyDarwin/EasyDarwin)都可以用到(包括CMS中心管理服务器、EasyDarwin流媒体服务器),只要稍稍熟悉一下代码,就能很轻松将自己定义的协议流程加入进去,也可以直接就用EasyDarwin提供的协议版本,省去了大量的开发成本;
EasyDarwin流媒体服务器还能支持多种流媒体协议输出:RTSP、HLS、RTMP,这样对多平台需要的安卓、ios、web、微信直播,都能全部支持了;
4、客户端部分:如果采用传统C/S架构,我们可以选择EasyPlayer开源流媒体播放器(RTSP播放器)进行直播播放;如果你用的是WEB客户端,那么你可以采用EasyDarwin输出RTMP直播协议的,或者如果你的延时要求不高,就可以采用EasyDarwin输出的HLS协议;如果你是做手机直播,你可以采用HLS、RTSP、RTMP中的任何一种,如果是做手机WEB App,可以选择EasyDarwin HLS输出;如果你想用微信平台做这个项目,那可以选择HLS,完全支持微信直播;
就是这样,功能组件都可以用上,主要是需要熟悉架构和使用的方法!
本文转自www.easydarwin.org,更多开源流媒体解决方案,请关注我们的微信:EasyDarwin
相关文章推荐
- linux 内核 linux kernel travel
- muduo::EventLoopThread、EventLoopThreadPool分析
- Linux-命令-find
- 常用Linux知识
- 关于@property&@synthesize使用详解
- 提高网站速度的6种网站前端优化方法
- 【Apache学习】linux中基于ip、基于端口的虚拟主机
- ssh实现远程登陆以及使用技巧
- Nginx之location
- Linux sort 命令
- Nginx 笔记与总结(8)Location:归纳总结
- OpenGL着色器语言4.1.7.2(图片类型)-4.1.8(结构体类型)
- eclipse配置tomcat,以及部署项目到tomcat(解决项目部署后,webapps中无项目文件问题)
- Linux 系统下Fortran调用shell
- 国外各厂家Visio素材搜集网站--系统集成必备
- Open Source 开发工具集
- linux的nfs文件共享
- Linux内核抢占实现机制分析
- Amoeba实现mysql的读写分离 CentOS6.5下
- zeromq学习笔记1——centos下安装 zeromq-4.1.2