前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始学习EasyDarwin(概述篇)

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

作者头像
全栈程序员站长
发布2022-07-22 12:22:00
1.6K0
发布2022-07-22 12:22:00
举报
文章被收录于专栏:全栈程序员必看

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

  • 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.cn/125433.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月5,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档