[live555]live555开源RTSP流媒体解决方案说明 [转]
liveMedia 项目(http://www.live555.com/)的源码包括四个基本的库、测试代码及Media Server。 四个基本库分别是:UsageEnvironment&TaskScheduler、groupsock、liveMedia、BasicUsageEnvironment。
(1) UsageEnvironment 和TaskScheduler类,用于事件调度,实现异步读取事件的句柄的设置、错误信息输出。还有一个HashTable类,定义了一个通用的hash表。这些都是抽象类,在程序中实现自己的子类。
(2) groupsock类,是对网络接口的封装,用于收发数据包。主要面向多播数据的收发,同时也支持单播数据的收发。
(3) liveMedia库,是Live555最重要的模块。该模块声明了一个抽象类Medium,其他所有类都派生自该类,下面简要介绍这些类:
? RTSPClient:该类实现RTSP请求的发送和响应的解析,同时根据解析的结果创建对应的RTP会话。
1) MediaSession:用于表示一个RTP会话,一个MediaSession可能包含多个子会话(MediaSubSession),子会话可以是音频子会话、视频子会话等。
2) RTCPInstance:该类实现RTCP协议的通信。
3) Source和Sink:Source抽象了数据源,比如通过RTP读取数据。Sink是数据消费者的抽象,比如把接收到数据存储到文件,该文件就是一个 Sink。数据的流动可能经过多个Source和Sink。MediaSink是各种类型的Sink的基类,MediaSource是各种类型 Source的基类,各种类型的流媒体格式和编码的支持即是通过对这两个类的派生实现的。Source和Sink通过RTP子会话 (MediaSubSession)联系在一起。
(4) BasicUsageEnvironment 是UsageEnvironment 和TaskScheduler类的一个基本实现。
(5) 测试代码,在testProgram目录下,比如openRTSP等,这些代码有助于理解liveMedia的应用。
(6) Media Server是一个纯粹的RTSP服务器。支持多种格式的媒体文件:
* TS流文件,MPEG传输流文件,扩展名 ts
* MPEG-1 or 2 Rogram (audio+video)流文件,扩展名 mpg
* MPEG-4视频基本流文件,扩展名 m4e
* H.264 视频基本流文件,扩展名 .264
* DV视频文件,扩展名 .dv
* MP3文件,扩展名 mp3
* WAV文件(PCM),扩展名 wav
* AMR音频文件,扩展名 amr
* AAC文件,ADTS格式,扩展名 aac
热门文章推荐
- [live555]live555直播rtsp流
- [live555]Live555学习资料及下载
- [live555]rtsp直播基于live555的实现
- [rtsp]海康Hikvision Tools(SADP搜索摄像头工具)下载
- [Live555]live555中处理mpeg4
- [NVR]海康网络摄像机录像时间怎么自定义设置
- [RTSP]RTSP常用方法实例
- [udp]为什么视频数据一般都用UDP协议进行传输