需求背景

EasyDarwin开发团队维护EasyDarwin开源流媒体服务器也已经很多年了,之前也陆陆续续尝试过很多种服务端录像的方案,有:在EasyDarwin中直接解析收到的RTP包,重新组包录像;也有:在EasyDarwin中新增一个RecordModule,再以RTSPClient的方式请求127.0.0.1自己的直播流录像,但这些始终都没有成气候;

我们的想法是能够让整套EasyDarwin的系统更加灵活起来,各个服务单元都非常内聚地做自己的本职工作,EasyDarwin是流媒体分发服务器,那就只做流媒体分发,,EasyCMS是设备长连接管理服务器,那就只做TCP Session维护,,EasyUMS是接口服务器,那就实现基础的用户管理/设备管理/后台和接口,,同样,我们计划做的EasyRMS录像服务器,那就专门做拉流录像,然后各个服务器之间采用http接口+redis相互沟通控制:

EasyDarwin开源平台架构

乍一看整个EasyDarwin开源平台的架构是不容易一次性弄懂其架构思路和运行流程的,先从基本的架构想法上来说,就是上面说到的,各个单元干各自擅长的事情,管理连接的就管理连接、直播分发的就直播分发、录像的就录像、对外接口的就对外接口,当用户客户端EasyClient需要到各种不同数据的时候,就找不同的服务单元获取数据即可:

  • 客户端需要获取所有在线和离线的设备列表:

    EasyClient只需要在调用完成EasyUMS的登录接口之后,从EasyUMS获取相应的列表关系接口,返回给客户端进行展示;

  • 客户端要获取直播流,调用EasyCMS获取直播流的接口,获取到直播播放地址,进行播放;

  • 客户端要控制设备转动、向设备发送喊话,调用EasyCMS的ptz、talk接口,即可实现转动控制与喊话的功能;

  • 客户端要获取设备录像列表,直接向EasyUMS获取录像的列表,客户端在通过录像检索的结果,找EasyRMS进行录像回放;

从这个上面的基本思想上可以看出,各个服务单元都做的是自己非常单一功能的事情,这样就能很好的保证系统的高可扩展性和架构的稳定性,通过嫁接各种不同功能类型的服务单元,就可以变换实现非常多的场景的需求;

EasyRMS的架构

经过一周时间的技术调研,再结合之前版本的EasyRMS的成功实践经验与整体开源的要求,我们决定采用:EasyDarwin框架+ffmpeg实现EasyRMS:

  • EasyDarwin的主体框架我们成功运行在很多案例中了,能够成功嫁接到EasyRMS中来,做为底层基础结构,对外提供http+json接口、管理录像Session、以及可配合redis扩展实现分布式录像功能;

  • ffmpeg毫无疑问,目前流媒体中最牛x的项目,通用性和功能性极强,能够直接面向各种视频源格式:RTSP、HTTP、RTMP、RTP、UDP,录像输出成m3u8+ts;

  • 录像管理结构,可以采用上述的m3u8+ts,以目录形式管理,按照:设备ID/年月日/时分秒 的目录结构进行录像,最小检索单元是目录级的m3u8,这样检索服务检索出来的录像可以直接面向全平台终端回放,非常通用;

EasyRMS的迭代方向

按照上一节中的架构,EasyRMS还是一个单纯的录像服务器,那么后续,还要为EasyRMS配套开发一个录像计划与录像管理服务:

  • 录像计划,定时录像;

  • 录像管理,7天、30天录像管理,磁盘管理;

  • 录像图形化归档,这个就是上层做入库,图形化报表的功能了;

我们计划采用node来开发这种配套的录像管理服务;

关注EasyRMS项目

EasyRMS开源项目:https://github.com/EasyDarwin/EasyRMS

EasyDarwin开源项目:https://github.com/EasyDarwin

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin开源流媒体云平台之EasyRMS录播服务器功能设计的更多相关文章

  1. EasyDarwin开源流媒体云平台支持EasyCamera摄像机、EasyCamera手机直播监控、EasyNVR等多终端接入

    云平台架构 EasyDarwin开源流媒体云平台目前已经包括了EasyCMS中心管理服务.EasyDarwin流媒体服务.EasyCamera设备端(支持Arm_Linux.Android.PC).E ...

  2. EasyDarwin开源流媒体云平台设计与实现(分布式+负载均衡)

    前言 早在2013年我就设计了一套架构非常简单的分布式流媒体服务器平台<基于Darwin实现的分布式流媒体直播服务器系统>,当时的考虑如今看来有诸多的细节点没有考虑到:1.CMS是单点部署 ...

  3. EasyDarwin开源流媒体云平台之语音对讲功能设计与实现

    本文由EasyDarwin开源团队成员Alex贡献:http://blog.csdn.net/cai6811376/article/details/52006958 EasyDarwin云平台一直在稳 ...

  4. EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台

    前言 随着Android系统的不断更新和发展,现在越来越多的硬件产品选择用安卓系统作为运行环境,电视机,机顶盒.门禁.行车记录仪.车载系统.单兵设备等等,Android系统底层还是Linux,但对上层 ...

  5. EasyDarwin开源流媒体云平台之云台ptz控制设计与实现

    本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/51912692 近日,EasyDarwin云平 ...

  6. EasyDarwin开源流媒体云平台VS调试断点提示“还没有为该文档加载任何符号”的解决办法

    本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52063666 近日,我们EasyDarwin ...

  7. EasyDarwin开源流媒体云平台中boost Base64编解码后与源长度不匹配的bug

    本文转自EasyDarwin团队Alex的博客:http://blog.csdn.net/cai6811376 EasyDarwin云平台中部分协议使用了Base64编码昨晚报文通信的载体.比如在对摄 ...

  8. 开源流媒体云视频平台EasyDarwin中EasyCMS服务是如何进行命令转发和消息路由的

    EasyCMS介绍 EasyCMS做为EasyDarwin开源流媒体云平台解决方案的一部分,主要进行的是设备的接入和Session(DeviceSession & ClientSession) ...

  9. EasyDarwin开源流媒体项目

    本文转自EasyDarwin CSDN官方博客:http://blog.csdn.net/easydarwin EasyDarwin是由国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,从2 ...

随机推荐

  1. 【CF314C】Sereja and Subsequences(DP,树状数组)

    题意:给定一个N个数的数列,求所有不同不下降子序列的乘积之和,其中不同指的是组成它的数字和长度不完全相同 n (1 ≤ n ≤ 10^5) a[i]<=10^6 思路:考虑DP.设DP[a[i] ...

  2. 免费CSS鼠标样式代码大全

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] http://5211.91.tc/sb.htm

  3. 【Windows API】OpenClipboard --- 剪切板(转)

    原文转自 http://www.cnblogs.com/wind-net/archive/2012/11/01/2749558.html 剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其 ...

  4. c#FileStream文件读写

    //C#文件流写文件,默认追加FileMode.Append             string msg = "okffffffffffffffff";            b ...

  5. GNOME 3.x下安装配置小企鹅输入法框架及SunPinYin插件

    fcitx 小企鹅输入法框架已经越来越成熟,并且具备极高的性能,配合 Sun PinYin 智能输入法就和 Windows 下的搜狗百度等输入法几乎无二了.事实上,现在Linux版本的搜狗输入法正是基 ...

  6. C++对象

  7. 缓存区溢出漏洞工具Doona

    缓存区溢出漏洞工具Doona   Doona是缓存区溢出漏洞工具BED的分支.它在BED的基础上,增加了更多插件,如nttp.proxy.rtsp.tftp等.同时,它对各个插件扩充了攻击载荷,这里也 ...

  8. UVA 11090 Going in Cycle!! SPFA判断负环+二分

    原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  9. Codeforces Gym 100338B Spam Filter 字符串哈希+贝叶斯公式

    原题链接:http://codeforces.com/gym/100338/attachments/download/2136/20062007-winter-petrozavodsk-camp-an ...

  10. bzoj 1835/luogu P2605 : [ZJOI2010]base 基站选址

    题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范 ...