Live555 框架简述,以及相关类图和协作图

简述

是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG,H.263+ ,H.264,H.265,DV,JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。从1998年至今一直不间断的更新,框架健壮稳定。
各库简要介绍

各库简要介绍

lib name lib 描述
LiveMedia lib 包含一系列处理不同编码格式和封装格式的类,基类是Medium。
UsageEnvironment lib 环境类,用于错误信息的输出。LIVE555中多数类中均包含此类对象指针。其内部包含TaskSchedule抽象类的指针,该类用于任务调度,因此所有包含UsageEnvironment指针的类均可将自己加入到调度中。
BasicUsageEnvironment 包含具体环境类和具体TaskScheduler类。UsageEnvironment用于对错误信息的处理, BasicUsageEnvironment类用于以控制台方式输出错误信息。因此想要以其他方式输出错误信息的类,可以从UsageEnvironment派生。BasicTaskSchedule类继承自TaskScheduler抽象类,用以定义具体的调度策略。任何基于LIVE555的应用程序均需要定义自己的BasicEnvironment和TaskScheduler库。如果创建窗口应用程序,在重定义TaskScheduler时,需要与图形环境自己的事件处理框架集成。BasicTaskSheduler使用select模型实现事件的获取和处理。如果想使用更高效的IOCP模型,可以定义自己的BasicTaskScheduler类。BasicTaskScheduler内部有一个循环,循环读取队列中的消息并处理。整个基于BasicTaskScheduler的程序只有一个线程驱动。
GroupSock 对各种socket操作的封装,用于收发数据。主要面向组播,但也可以进行单播的收发数据,仅支持UDP,不支持TCP。
MediaServer 服务器程序:该程序使用BasicUsageEnvironment库实现,因此是一个控制台程序。任务调度类是BasicTaskScheduler类,因此使用Select模型且仅有一个线程在循环处理各种事件。
testProgs 各种测试程序

所用到的类图与协作图

BasicUsageEnvironment 类图继承关系

Inheritance graph

BasicUsageEnvironment 相关协作图

image

BasicTaskScheduler 类图继承关系

Inheritance graph

BasicTaskScheduler 相关协作图

Collaboration graph

RTSPServer 类图继承关系

image

RTSPServer相关协作关系

image

RTPSink类图继承关系

image

RTPSink 相关协作图

image

FramedSource类图继承关系

image

FramedSource协作图

image

H264VideoStreamFramer 类图继承关系

image

H264VideoStreamFramer 协作图

image

OnDemandServerMediaSubsession 类图继承关系

![Inheritance graph](https://upload-images.jianshu.io/upload_images/6094226-64e75cf993d2576b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

OnDemandServerMediaSubsession 相关协作关系

![image](https://upload-images.jianshu.io/upload_images/6094226-903b799dcacc20ec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Web & Reference

http://www.live555.com/

http://download.videolan.org/pub/contrib/live555/

https://www.ietf.org/rfc/rfc2326.txt

你可能感兴趣的:(Live555 框架简述,以及相关类图和协作图)