从零开始学习EasyDarwin(概述篇)

EasyDarin是什么  EasyDarwin是由国内开源流媒体团队维护的一款开源流媒体平台框架,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目,更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台。EasyDarwin适合做什么  安防视频监控,移动互联网(安卓、IOS、微信)流媒体直播与点播,流媒体视

大家好,又见面了,我是你们的朋友全栈君。

  • EasyDarin是什么

       EasyDarwin是由国内开源流媒体团队维护的一款开源流媒体平台框架,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目,更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台。

  • EasyDarwin适合做什么

      安防视频监控,移动互联网(安卓、IOS、微信)流媒体直播与点播,流媒体视频服务器 
      

  • EasyDarwin官网及Github项目地址 
    官方网址:http://www.easydarwin.org/ 
    Github地址:https://github.com/EasyDarwin/EasyDarwin 
    目录结构如下: 
    这里写图片描述
    目前EasyDarwin流媒体平台整套解决方案包括有: 
    EasyDarwin(流媒体服务) 
    EasyCamera(开源流媒体摄像机) 
    EasyPlayer(开源流媒体播放器) 
    工具库(EasyHLS / EasyRTMP / EasyRTSPClient / EasyPusher / EasyAACEncoder) 
    注意:EasyDarwin有两个私有自定义的Module:拉模式转发模块EasyRelayModule和HLS直播模块EasyHLSModule,这里用到的libEasyRTSPClient、libEasyPusher、libEasyHLS三个库文件都是没有开源的,他们都是EasyDarwin团队开发的SDK库,但这些都是完全免费使用的。 
    EasyDarwin的编译和部署可以参考官方的文档 
    http://doc.easydarwin.org/EasyDarwin/README/#_1 
    一.主体框架 
      DSS的核心服务器部分是由一个父进程所fork出的一个子进程构成,该父进程就构成了整个流媒体服务器。父进程会等待子进程的退出,如果在运行的时候子进程产生了错误从而退出,那么父进程就会fork出一个新的子进程。可以看出,网络客户和服务器直接的对接是由核心服务器来完成的。网络客户RTSPoverRTP来发送或者接受请求。服务器就通过模块来处理相应的请求并向客户端发送数据包。

      核心流媒体服务通过创建四种类型的线程来完成自己的工作,具体如下:

      服务器自己拥有的主线程。当服务器需要关闭检查,以及在关闭之前记录相关状态打印相关统计信息等任务处理时,一般都是通过这个线程来完成的。

      空闲任务线程。这个任务线程是用来对一个周期任务队列的管理,主要管理两种任务,超时任务和Socket任务。

      事件线程。套接口相关事件由事件线程负责监听,当有RTSP请求或者收到RTP数据包时,事件线程就会把这些实践交给任务线程来处理。

      任务线程。任务线程会把事件从事件线程中取出,并把处理请求传递到对应的服务器模块进行处理,比如把数据包发送给客户端的模块,在默认情况下,核心服务器会为每个处理器核创建一个任务线程。

       
    二.模块分类 
      流媒体服务器使用模块来响应各种请求及完成任务。有三种类型的模块:

      (1).内容管理模块

      媒体源相关的RTSP请求与响应,我们通过内容管理模块来管理,每个模块都用来对客户的需求进行解释并做相应处理,例如读取和解析模块支持的文件,或者请求的网络源信息,并通过RTP等方式响应。

      内容管理模块有以下几个:

      QTSSFileModule,

      QTSSReflectorModule,

      QTSSRelayModule,

      QTSSMP3StreamingModule。

      (2).服务器支持模块

      服务器支持模块执行服务器数据的收集和记录功能。

      服务器模块包括:

      QTSSErrorLogModule,

      QTSSAccessLogModule,

      QTSSWebStatsModule,

      QTSSWebDebugModule,

      QTSSAdminModule,

      QTSSPOSIXFileSystemModule。

      (3).访问控制模块

      访问控制模块提供鉴权和授权功能,以及操作URL路径提供支持。

      访问控制模块包括:

      QTSSAccessModule,

      QTSSHomeDirectoryModule,

      QTSSHttpFileModule,

      QTSSSpamDefenseModule。

二.EasyDarwin特性(后续补充)

支持MP4、3GPP等文件格式;

支持MPEG-4、H.264等视频编解码格式;

支持RTSP流控协议,支持HTTP协议;

支持RTP流媒体传输协议;

支持单播和组播;

支持基于Web的管理;

具有完备的日志功能。






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125433.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JWT单点登录[通俗易懂]

    JWT单点登录[通俗易懂]项目开发视频:SpringCloud微服务开发入门手把手开发基于SpringBoot的员工管理系统亿度云盘~Java小白入门实战超详细的Java知识点汇总单点登录是什么SSO(SingleSignOn)SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。为什么需要单点登录以前分布式系统的多个相关的应用系统,都需要分别进行登录,非常繁琐。原来登录的过程:1)用户输入账号密码2)提交到后台验证,成功后将用户存在Session中3)需要进行登录状态判

    2022年5月11日
    44
  • springboot线程池的使用和扩展「建议收藏」

    springboot线程池的使用和扩展「建议收藏」我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行,今天我们就来实战体验这个线程池服务;本文地址:http://blog.csdn.net/boling_cavalry/article/details/79120268实战环境windowns10;jdk1.8;spring

    2022年6月30日
    16
  • biztalk什么意思_aide教程网

    biztalk什么意思_aide教程网BizTalk开发系列(二十六) 使用Web Service

    2022年4月21日
    59
  • mac clion激活码【2021.8最新】

    (mac clion激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    125
  • Toast弹窗_toast 提示

    Toast弹窗_toast 提示js部分importvuefrom”vue”;//这里就是我们刚刚创建的那个静态组件importtoastComponentfrom”./toast.vue”;//把vue组件引进来//返回一个扩展实例构造器constToastConstructor=vue.extend(toastComponent);//定义弹出组件的函数接收2个参数,要显示…

    2022年9月24日
    0
  • 全排列 leetcode_leetcode top100

    全排列 leetcode_leetcode top100原题链接给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]题解回溯即可class Solution {public: vector<vector<int> >res; vector<int>t; void dfs(int num,int len,vecto

    2022年8月8日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号