1 live555项目组现在包括了以下几个部分:
1.1 live555 stream media:流媒体库,基于RTP/RTCP/RTSP/SIP多媒体标准。
1.2 live555 媒体服务器:它的代码包含在live555 stream media中,做为它的一个应用程序。
1.3 liveGate:把PC加入到多媒体网络中。
2 live555 stream media包括以下几个部分:
2.1 UsageEnvironment:是一个用于处理调度事件,读取事件,输出消息的基类,它是一个抽象类。
2.2 groupsock:它是一个网络接口的封装类。它封装了组播包的收发。
2.3 liveMedia:多媒体类型和编解码器的基类。
2.4 BasicUsageEnvironment:
2.5 WindowsAudioInputDevice:是liveMedia库实现的音频输入设备抽象类。它被用于一个窗口程序从输入设备读取PCM音频数据。
2.6 mediaServer:live555媒体服务器程序。
2.6.1 功能:
它是一个RTSP服务器程序,它能处理以下几种流:
l A MPEG Transport Stream file (with file name suffix ".ts")
l A Matroska or WebM file (with filename suffix ".mkv" or ".webm")
l A MPEG-1 or 2 Program Stream file (with file name suffix ".mpg")
l A MPEG-4 Video Elementary Stream file (with file name suffix ".m4e")
l A H.264 Video Elementary Stream file (with file name suffix ".264")
l A DV video file (with file name suffix ".dv")
l A MPEG-1 or 2 (including layer III - i.e., 'MP3') audio file (with file name suffix ".mp3")
l A WAV (PCM) audio file (with file name suffix ".wav")
l An AMR audio file (with file name suffix ".amr")
l An AAC (ADTS format) audio file (with file name suffix ".aac")
这些流能被支持RTSP/RTP标准诉客户端接收。
2.6.2 注意:
l 这个服务器能同时传输多个流。
l 默认情况下,这个服务器通过RTP/UDP包传送。如果客户端需要RTSP,那么这个服务器能通过TCP传送RTP或RTCP。
l 有些非标准的RTSP客户端,它需要传输裸流(raw UDP streaming, rather than standard RTP streaming.),这个服务器也能用原始UDP传输MPEG流。
2.6.3 配置:
多媒体文件放在这个程序的当前目录或者子目录下。
2.7 proxyserver:流媒体代理服务器。
--> [RTSP client1]
[back-end RTSP/RTP stream] --> [LIVE555 Proxy Server] --> [RTSP client2]
...
--> [RTSP clientN]
基本操作:
live555ProxyServer <url1> <url2> ... <urlN>
调试输出:
-v :服务器的基本操作
-V:显示更多的输出,包括代理服务器与每个后端流服务器的RTSP协议交换信息。
-t:与后端流服务器通过TCP传输。
-T<http-port-number>:通过指的的HTTP端口进行RTSP协议传输。
-u <username> <password>:存取控制。例如:rtsp://<username>:<password>@<hostname>:<port>/<etc>
注意:这个功能需要源码在编译时宏ACCESS_CONTROL被打开。
2.8 testProgs:一些测试程序
3 环境搭建
3.1 源码下载:
http://www.live555.com/liveMedia/public/
当前我下载的版本是0.74
3.2 编译
3.2.1 linux平台
3.2.1.1 ./genMakefiles linux #产生makefile文件
3.2.1.2 make #编译
mediaServer/live555MediaServer