从零开始学习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)
上一篇 2022年4月5日 下午8:00
下一篇 2022年4月5日 下午8:00


相关推荐

  • Python调用百度云api,实现截图图片文字识别

    Python调用百度云api,实现截图图片文字识别调用百度云api,实现截图图片文字识别相信大家在网上查找资料时都会遇到一些类似于pdf格式的文档,无法直接复制,手打太过于浪费时间。那么在这里我分享一个调用百度云api文字识别接口识别此类文字的python小程序。本人刚学习python时间不长,如果内容有错误还望斧正。首先我们需要去百度云官网申请一个接口点击立即使用创建应用填写需要填写的数据后点击立即创建,即可创建成功此时我们…

    2022年6月1日
    45
  • 常用硬件知识点总结

    常用硬件知识点总结1、GPIO的8种工作模式①浮空输入:一般多用与外部按键输入。IO的电平状态是不确定的,完全由外部输入决定。输入引脚上任何噪声都会改变输入段检测到的电平。②带上拉输入:内接上拉电阻输入,当输入引脚悬空时读到的是1。③带下拉输入:内接下拉电阻输入,当输入引脚悬空时读到的是0。④模拟输入:应用ADC模拟输入⑤推挽输出:推挽电路是两个参数相同的三极管或MOSFET,以推…

    2022年7月22日
    11
  • alternatives java_linux 下用 alternatives 命令进行多版本java 切换

    alternatives java_linux 下用 alternatives 命令进行多版本java 切换首先需要把新安装的 jdk 添加到 alternatives alternatives usr bin javajava usr share jdk1 6 0 17 bin java1600alte usr bin javacjavac usr share jdk1 6 0 17 bin javac1600 然后使用 display

    2026年3月16日
    3
  • IntelliJ IDEA 调整字体大小

    IntelliJ IDEA 调整字体大小1 File nbsp Settings nbsp nbsp or nbsp 快捷键 Ctrl Alt S2 Editor Color amp Fonts Font

    2026年3月17日
    3
  • 最新Coze(扣子)智能体工作流:一键把Excel转化成各种可视化数据图表,小白也能上手

    最新Coze(扣子)智能体工作流:一键把Excel转化成各种可视化数据图表,小白也能上手

    2026年3月12日
    2
  • IDEA配置MAVEN超详细

    IDEA配置MAVEN超详细1 打开 idea 在开始界面点击 Customize Allsettings 推荐大家从这里设置 这样以后新建的项目就不用再设置了 在里面设置的话每次打开新项目都要设置一次 2 依次点击 Build Execution Deployment BuildTools Maven3 选择本机 maven 安装目录 maven 配置好的话在下拉列表就可以直接看到 选择自己安装的 maven 就可以了 4 点击后面的 Override 选择自己 maven 的 setting xml 和仓库位置 5 最后别忘了点击 O

    2026年3月16日
    1

发表回复

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

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