从零开始学习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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hibernate之c3p0连接池配置详解

    hibernate之c3p0连接池配置详解数据库连接池,项目中一旦配置好后一般很少改动,所以很多人并没有细细的研究过(有时甚至是运维的人负责配置),其实这个知识点还是很重要的,所以我在这里总结分享下,需要用到的时候拿出来看看就可以啦。这里我们介绍的是c3p0的配置方式。

    2022年6月13日
    36
  • latex中的括号怎么打_小括号和中括号的简便算法

    latex中的括号怎么打_小括号和中括号的简便算法https://blog.csdn.net/han____shuai/article/details/49679335功能语法显示不好看    (\frac{1}{2})好一点\left(\frac{1}{2}\right)您可以使用\left和\right来显示不同的括号:功能语法显示圆括号,小括号\left( \frac{a}{b}\right)方括号,中括号\left[ \frac…

    2022年10月11日
    5
  • 补码运算的溢出_补码乘法溢出判断

    补码运算的溢出_补码乘法溢出判断补码运算-溢出和自然丢弃int:-32768——+32767最高位为符号位:0代表正,1代表负正数:补码,反码,原码相同负数:补码是正数取反加一32767的编码0111111111111111取反为1000000000000000再加1得到-32767的编码:1000000000000001-32768比32767还少1:自然就是:1000000000000000在原码运算时,首先要把符号与数值分开。例如两数相加,先要判断两数的符号,如果同号,可以做加法,如果异号,实际要做

    2022年9月22日
    2
  • ffmpeg avformat_open_input返回失败,错误码-10049

    ffmpeg avformat_open_input返回失败,错误码-10049ffmpegavformat_open_input失败,返回错误码-10049,错误描述:Errornumber-10049occurred调试代码,找到如果设置了time_out参数,就会失败,不设置就没问题,具体原因还没有找到,备注此问题,以待后续继续分析源代码:av_register_all();avformat_network_init();AVFormatCo…

    2022年9月28日
    2
  • 孙鑫老师 java从入门到精通 视频教程 批量下载

    孙鑫老师 java从入门到精通 视频教程 批量下载本视频教程是孙鑫老师亲自开发录制的,内容涵盖了java技术从入门到精通整个过程。对于java爱好者是一套不可多得的教材!相信下载此教程的同志都是未来的电脑高手,对于批量下载的方法我在这时就不一一说了,相信兄弟们都能找到这种简单规律。这里以第三课批量下载为例简单说一下:(记得将通配符长度设为1哦)第一课Java的一些基本概念http://www.ibook8.com/te

    2022年5月17日
    39
  • 思科路由器配置命令(一)

    思科路由器配置命令(一)一 路由器基本配置命令 R1 gt enable 进入特权模式 R1 disable 退出特权模式 R1 gt R1 configureter 进入全局配置命令 R1 config noipdomain lookup 关闭域名解析 R1 config hostnameSW1 更改主机名为 SW1R1 config enablepasswo 配置进入特权模式的密码 R1 config interfa

    2025年7月3日
    5

发表回复

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

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