移动互联网越来越普及,幼儿园监控类的项目也越来越多,如何能够以最低的成本、最快的速度搭建一套幼儿园监控类的平台成了许多开发者的需求,那么我们今天就来简单探讨一下如何基于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

基于EasyDarwin实现幼儿园监控类项目的更多相关文章

  1. 项目-基于视频压缩的实时监控系统--tiny6410

    项目-基于视频压缩的实时监控系统--tiny6410 @国嵌linux学习笔记. 1. 构造服务端结构体 server struct server { int epfd; //保存epoll指针 st ...

  2. Asp.Net Core 2.0 项目实战(5)Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  3. 嵌入式应用开发第四阶段-基于rk3399的视频监控系统

    一.需求分析 伴随着嵌入式技术.图像处理技术和无线网络传输技术的发展,传统模拟视频监控系统和基于PC的远程视频监控系统由于自身的不足,已经无法满足现代社会应用中不断涌现出来的新需求,于是基于嵌入式技术 ...

  4. 基于腾讯云监控 API 的 Grafana App 插件开发

    Tencent Cloud Monitor App Grafana 是一个开源的时序性统计和监控平台,支持例如 elasticsearch.graphite.influxdb 等众多的数据源,并以功能 ...

  5. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  6. B/S 类项目改善

    B/S 类项目改善的一些建议   要分享的议题 性能提升:在访问量逐渐增大的同时,如何增大单台服务器的 PV2 上限,增加 TPS3 ? RESTful:相较于传统的 SOAP1,RESTful 风格 ...

  7. C#监控类属性的更改(大花猫动了哪些小玩具)

    C#监控类属性的更改(大花猫动了哪些小玩具) 实体类创建后在方法中对哪些属性赋值了,传递到底层方法时在底层如何得知哪些属性被赋值过.如何监控属性的更改,请看脑洞大开之<大花猫动了哪些小玩具> ...

  8. NET Core2.0 Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。

    DotNetCore2.0下使用memcached缓存. Memcached目前微软暂未支持,暂只支持Redis,由于项目历史原因,先用博客园开源项目EnyimMemcachedCore,后续用到的时 ...

  9. visualvm监控类是否是多例模式

    使用 visualvm干的第一件事情:监控类是否是多例模式 具体操作为: 1.首先启动本地项目,打开 jvisualvm,选择Tomcat(注意,在jdk目录下的名称里,命名前加了一个 j,别找不到了 ...

随机推荐

  1. idea http请求的插件(测试接口方便)

    http://blog.csdn.net/winter_chen001/article/details/77249029

  2. AC日记——[Sdoi2013]森林 bzoj 3123

    3123: [Sdoi2013]森林 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 3216  Solved: 944[Submit][Status] ...

  3. 2017 CCPC 哈尔滨站 题解

    题目链接  2017 CCPC Harbin Problem A Problem B Problem D Problem F Problem L 考虑二分答案. 设当前待验证的答案为x 我们可以把第二 ...

  4. Nginx+keepalived双机热备(主主模式)

    IP说明: master机器(master-node):10.0.0.5/172.16.1.5   VIP1:10.0.0.3slave机器(slave-node): 10.0.0.6/172.16. ...

  5. Go语言:变参函数

    变参函数: 函数中形式参数的数目通常是确定的,在调用的时候要依次传入与形式参数对应的所有实际参数,但是在某些函数的参数个数可以根据实际需要来确定,这就是变参函数. Go语言支持不定长变参,但是要注意不 ...

  6. Exiting an iOS App with Xamarin

    referenced from: http://www.redbitdev.com/exiting-ios-app-with-xamarin-ios/ The team is in the middl ...

  7. Android自定义控件之基本原理(一)

    前言: 在日常的Android开发中会经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件,今天先大致了解一下自定义控件的要求和实现的基本原理. 自 ...

  8. openfire Android学习(六)----总结

    Xmpp的一些方法整理到一个工具类中了 XmppConnection.java [java] view plaincopy [java] view plaincopy import java.io.B ...

  9. 开源软件许可认证:open softwae license

    OSIA认证的开放源代码软件的软件许可证有如下21种: 1.The GNU General Public License (GPL) 2.The GNU Library or "Lesser ...

  10. js:深入继承

    /**  * js实现继承:  * 1.基于原型链的方式  * 2.基于伪造的方式  * 3.基于组合的方式  */ 一.基于原型链的方式 function Parent(){   this.pv = ...