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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值