live555开源RTSP流媒体解决方案说明
来源:互联网 发布:阿里健康大数据 编辑:程序博客网 时间:2024/06/14 07:15
liveMedia 项目(http://www.live555.com/)的源码包括四个基本的库、测试代码及Media Server。 四个基本库分别是:UsageEnvironment&TaskScheduler、groupsock、liveMedia、BasicUsageEnvironment。
![](http://www.cuplayer.com/player/uploads/allimg/151019/1_151019161112_1.gif)
(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开源RTSP流媒体解决方案说明
- 开源RTSP 流媒体服务器
- live555学习之二RTSP协议说明
- live555——RTSP/RTP和live555通信详解,搭建流媒体服务器
- MPlayer上支持RTSP流媒体(live555作为流媒体播放器)
- 流媒体-RTSP
- 三招教你用VLC Player 通过RTSP over Http 播放 live555 mediasever 来的流媒体
- 三招教你用VLC Player 通过RTSP over Http 播放 live555 mediasever 来的流媒体
- 三招教你用VLC Player 通过RTSP over Http 播放 live555 mediasever 来的流媒体
- rtsp 管道方式 live555
- live555库(zz)RTSP
- live555 dm368 rtsp
- live555 rtsp延时问题
- live555 RTSP 学习参考
- live555 rtsp流丢包问题
- live555架设rtsp服务器
- live555搭建rtsp服务器
- Live555 流媒体服务器启动
- 捕获异常
- 面试题7:用两个栈实现队列
- 函数式编程--函数式接口
- 【Android小游戏】安卓小游戏开发(手把手教学系列三)
- Python 书籍推荐
- live555开源RTSP流媒体解决方案说明
- 推荐本很棒的Android高阶知识的书
- Remove Duplicates from Sorted Array II
- Lua贪吃蛇开发笔记1
- java反射的简单例子
- 网络编程(2)--服务器模型
- 抛出异常
- Basic Calculator
- Java反射与线程的入门课