EasyDarwin@2018思考

从2012年开始接触Darwin Streaming Server,到2018年从底层开始完全重新架构、研发、完成,EasyDarwin这个项目已经发展了6年了,时间飞逝,那时候咱们工作时间还不是很长,在对架构的理解上还是比较浅显,但是经过多年的发展,给我最大的一个理解是:顺势而为!

以EasyDarwin 2018年的发展为例,我们经历了两次彻底的迭代,一次是由C++转向node.js,另一次是由node.js转向了golang,并终于稳定了基础。为什么说是顺势而为呢,在12年开始研究Darwin,并研发底层架构时,我们可用的、可研究的,无非就是ACE、libevent这些框架,而这些框架很多时候比较庞大,而且ACE这种很难稳定下来,就导致在底层花费的时间太长,那么从今天来看,基于开源的引擎,我们已经不用再过多去关注底层网络编程了,而且只要潜心去开发应用层的协议,而且类似于node.js、golang,周边配套的组件非常丰富,错误检查的机制也很完善,相比于当年的ACE、libevent开发,开发效率上飞跃太多。在我看来,这就是顺势而为,除非有特殊化的定制,不然我们不需要再过多在底层上恋战,我们可以花更多的时间去研究架构,疏通逻辑,优化算法。

2018的EasyDarwin经历node.js和golang版本的发展后,已经非常明确了自我的定位和下一步的发展目标:那就是更好地服务于安防行业,降低开发门槛,让更多的互联网开发者即使不熟悉音视频开发,也能通过简单的整合就能开发出业务场景需要的服务程序!

EasyDarwin@2019发展规划

EasyDarwin从安防行业发展过来,后面也将专注服务于安防、公安相关行业,我们还将秉承Easy的特性,不仅仅是调研Easy,而且要在开发者的入门、测试、研发等各个维度上,都充分Easy化,配套建立更多的文档和视频教程,简单到让产品经理来调研,也能知道EasyDarwin是否能够满足他们产品的需求:

  • 强化版本归档:定期更新,定期归档发布版本,更多的时候,不需要编译就能先使用看到效果;

  • 简化二次开发:从编程语言继续采用golang,到配套更多的迭代示例,让普通研发只需要几行代码就能接入自己想要的功能;

  • 整合:整合ffmpeg等优质工具,以稳定+稳定的方式迭代产品。

在开发层面上,继续站在巨人的肩膀上前行:

  • 基于golang开发和迭代;

  • 使用golang + C++进行流媒体关于复杂计算类型功能的开发;

  • 引入更多golang社区的优秀组件;

从整个社会的编程开发者到公司,商业化已经越来越无法阻挡了,有技术的人担子重、时间少,技术一般的时间多、缺乏经验,但凡是开发工作,都得有钱来推动,而我们开源不但要技术好的来开发、而且还得有时间、愿意分享、愿意抛头露面,这种已经是越来越凤毛麟角了,好在,我们团队还有几个这样的人存在,2019,EasyDarwin,不忘初心,继续前行!

对EasyDarwin开源项目2018的思考与2019发展的规划:继续站在巨人的肩膀引入更多巨人的更多相关文章

  1. 对EasyDarwin开源项目后续发展的思考:站在巨人的肩膀上再跳上另一个更高的肩膀

    2017 EasyDarwin现状 自从2012年EasyDarwin项目创立开始,经过了快5年了,时光飞逝,如今EasyDarwin已经发展成为了不仅仅是一个单纯的开源流媒体服务器项目了,已经是各种 ...

  2. EasyDarwin开源流媒体项目

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

  3. 3月份GitHub上最热门的Java开源项目

    今天,我们来盘点3月份GitHub上最热门的Java项目的时候了,如果你每月都有关注猿妹发布的排行榜,那么本月的Java项目对你来说一定不陌生,这些都是曾经多次出现在榜单中的项目: 1 advance ...

  4. EasyDarwin开源流媒体云平台之EasyRMS录播服务器功能设计

    需求背景 EasyDarwin开发团队维护EasyDarwin开源流媒体服务器也已经很多年了,之前也陆陆续续尝试过很多种服务端录像的方案,有:在EasyDarwin中直接解析收到的RTP包,重新组包录 ...

  5. 我们将要建立的EasyDarwin开源社区

    从12年12月我开始建立EasyDarwin开源项目,已经三年多的时间了,从开始最简单的一个开源流媒体服务器项目,如今已经发展成为目前国内最大的一个流媒体开源社区,截至目前已经有十几个项目在Githu ...

  6. 2015年度新增开源软件排名TOP 100,EasyDarwin开源流媒体服务器排名第17

    本榜单包含 2015 年开源中国新收录的 5977 款开源软件中,根据软件本身的关注度.活跃程度进行排名前 100 名的软件.从这份榜单中或许可以了解到最新业界的趋势. 榜单详情:http://www ...

  7. 解决用EasyDarwin开源流媒体服务器做HLS直播时Flash Player卡住的问题

    最近在开发EasyDarwin开源流媒体服务器HLS直播的时候发现一个现象:在PC上用flash player播放HLS和在ios上面播放HLS时,效果明显不同,在ios上播放非常稳定,而在flash ...

  8. 一个基于 Vue3 的开源项目,3个月时间 star 终于破千!

    本文主要是对如何做开源项目的一些思考. 前文回顾: <Vue3 来了,Vue3 开源商城项目重构计划正式启动!> <一个基于 Vue 3 + Vant 3 的开源商城项目> 关 ...

  9. Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向

    很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷 ...

随机推荐

  1. C# Windows form application 播放小视频

    1. 下载direcly-show lib DLL点击打开链接 2. DxPlay.cs (能够在下载的样例中找到):    public class DxPlay : IDisposable { e ...

  2. Java 8 List

    排序 依据自定义对象的某个属性进行排序. List<Student> students = Arrays.asList(student1, student2, student3); stu ...

  3. Oracle转化成为百分比

    两种方式都行: ),)||'%' 百分比 from dual; ),'99D99')||'%' 百分比 from dual 第一种方式通过round可以自己选择精确到位数.

  4. ibatis-java.lang.RuntimeException: Error setting property 'setFileSize'

    ibatis查询问题:      ibatis-java.lang.RuntimeException: Error setting property 'setFileSize'

  5. ios 自动布局水平跟垂直居中

    [view addConstraint:[NSLayoutConstraint constraintWithItem:segment attribute:NSLayoutAttributeCenter ...

  6. CefSharp.WinForms

    CefSharp.WinForms 一.  前言 银医通项目,现在另外一家医院需要上系统,所以项目需要重新搭建,由于这家医院的His系统和另外一家医院的His系统不同,界面风格也不一致,所以重新搭建, ...

  7. bzoj1670【Usaco2006 Oct】Building the Moat 护城河的挖掘

    1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 387  Sol ...

  8. 史上最简单的springcloud微服务入门实例,满足企业日常需求,开箱即用,工资翻倍不是梦

    在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高.到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术 ...

  9. 转:关于安卓多线程while(true)方法占用CPU高的原因及其解决方法

    由于项目需要用到安卓多线程操作,结果开了四条线程,下载到平板一直很卡,CPU占用率暴涨.于是开始查找原因,发现是线程run()方法里的while(true)导致的, 下图是为解决时开启一条while( ...

  10. java - day11 - OverRideTest

    概念 1.重写:看调用方法的对象:如果调用的是子类对象,则无论父类/子类引用类型,调用的都是重写后的方法,如果想调用父类的方法,用super.方法 来调:如果调用的是父类对象,则调用的是父类重写前的方 ...