使用了live555一段时间了,现在主要想总结一下使用的过程,以提高对RTSP/RTP的理解。这篇主要为介绍live555的一些主要目录。

LIVE555目录文件

live555目录

从上图看出,live主要包括UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment,程序入口mediaServer、proxyServer,测试程序testProgs这几个目录。

UsageEnvironment

抽象类"UsageEnvironment"和抽象类"TaskScheduler"用于事件调度,包括异步事件的读取,以及输出错误/警告消息等,相当于LIVE555的永动机。
在该组件中,有"HashTable"通用哈希表抽象类。

groupsock

库"groupsock"封装了网络接口和套接字。特别是,封装了用于发送(和/或接收)多播数据报的套接字。

liveMedia

这个组件定义了一个用于各种流媒体类型和编解码器类层次结构,顶层基类为"Medium"类。

也可以说该组件为各种流媒体类型和编解码器定义了source和sink操作,source相当于生产者,sink相当于消费者,比如source读取媒体数据,sink从source获取媒体数据发送出去。

BasicUsageEnvironment

该库定义了“UsageEnvironment”类的一个具体实现(即子类),用于简单的控制台应用程序。 使用select()循环处理读取事件和延迟操作。

testProgs

此目录实现了一些使用“BasicUsageEnvironment”的简单程序,以演示如何使用这些库开发应用程序。