- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多协议流服务器设计说明书
V1.0.0
修订记录:
时间 修改者 版本号 备注 V1.0.0 完成整个系统的模块和类对象层设计
目 录
1 简介 1
1.1 目的 1
1.2 软件名称 1
1.3 软件功能 1
2 第0层设计描述 1
2.1 软件系统上下文定义 1
2.2 外部接口描述 1
2.2.1 HLS 1
3 第一层设计描述 1
3.1 系统结构 2
3.1.1 HTTP 2
3.1.2 HLS VOD 2
3.1.3 HLS LIVE 2
3.1.4 DISK IO 2
3.1.5 INDEX 2
3.1.6 SOCKET 2
3.1.7 LOG 3
3.1.8 THREAD 3
4 第二层设计描述 3
4.1 Log 3
4.1.1 系统结构 3
4.1.2 接口描述 3
4.1.3 详细设计 4
4.2 Event 4
4.2.1 系统结构 4
4.2.2 接口描述 5
4.2.3 详细设计 5
4.3 EventEx 6
4.3.1 系统结构 6
4.3.2 接口描述 6
4.3.3 详细设计 6
4.4 Thread 6
4.4.1 系统结构 6
4.4.2 接口描述 7
4.4.3 详细设计 7
4.5 Server 7
4.5.1 系统结构 7
4.5.2 接口描述 7
4.5.3 详细设计 8
简介
目的
本流服务器是基于Redhat6.2平台开发的,提供了Apple公司HLS协议的接口支持,可对接Apple公司现有手持终端设备或其它兼容HLS协议的客户端,可以提供标清及高清的视频点播服务。
软件名称
多协议流媒体服务器
软件功能
在本文档描述的V1.0版本中,流服务器可以提供视频点播服务,并可支持点播时的拖动操作。在客户端与服务器间链接速度出现变化时客户端可根据流服务器的媒资情况实现码流自适应。
第0层设计描述
软件系统上下文定义
外部接口描述
HLS
通过HLS协议,SS服务器可向标准APPLE客户端提供视频流推送服务。但该HLS服务器提供的HLS索引描述文件仅限于以下参数的子集。
EXTM3U
标志着M3U文件的开始
EXT-X-TARGETDURATION
标志着最大文件分片的播放时长
EXT-X-MEDIA-SEQUENCE
在该M3U文件内第一个文件片的序号减一,后面分片文件序号递增1。
EXTINF
主要用来指出媒体分片的播放时长
EXT-X-STREAM-INF
指出具体码率下的不同M3U的URL,可携带节目号、码率等参数信息。
EXT-X-ENDLIST
表明该M3U文件的结束,如果是直播文件的话便不包含该参数。
第一层设计描述
系统结构
HTTP
该服务器的对外协议是HTTP,所以一个高效的HTTP模块是系统性能提升的重要基础。该模块在解析请求后,初步探测视频请求协议,然后将请求向下传递。并在获取请求数据后由该协议处理器自动进行数据传输。
HLS VOD
此模块负责处理经HTTP协议层解析后的URL请求,能够生成所有HLS视频点播请求的相关文件。
HLS LIVE
此模块会处理经HTTP协议层解析后的URL请求,能够生成所有HLS直播请求所需的数据文件。
DISK IO
提供高效的磁盘IO服务,此磁盘IO属于异步处理模式,对CPU消耗较低,属于系统基础模块。
INDEX
此模块会处理其它系统为流文件生成的描述文件,可由该模块得到流的GOP等信息,上层模块可调 用该模块获得用于生成文件切片及m3u所需的数据。。
SOCKET
提供了网络相关函数的封装,属于较底层的函数。
LOG
封装了log4cplus的库调用,用处整个系统的日志打印报务,基本上被其它所有模块所调用。
THREAD
此模块封装了系统pthread类的部分函数,提供了线程及锁支持。
第二层设计描述
类间的继承关系图如下:
Log
系统结构
此模块在系统中处于最低层,实现中只是简单封装了开源代码的log4cplus。此模块基本被其它的任何模块所调用,系统中的日志服务都是由该模块来提供的。
接口描述
任何有打印日志需求的类都要继承于CLogger。
在默认情况下该类的子类使用的是默认打印设置,该模式的打印输出设备是当前终端。
当然该类也可以通过SetLog来改变输出选项。
该类的子类也可以通过SetTitle来改变每行打印的前缀。
每个该类的子类都通过一个LOG_XXXX的宏来实现打印输出。
LOG_TRACE 用于打印TRACE级别的日志。
LOG_DEBUG 用于打印TRACE级别的日志。
LOG_INFO 用于打印TRACE级别的日志。
LOG_WARN 用于打印TRACE级别的日志。
LOG_
文档评论(0)