原文在这里 -> http://www.live555.com/liveMedia/
这份代码由一系列使用开放标准协议(RTP/RTCP,RTSP,SIP)的C++多媒体流库文件组成。这些库文件可以在Unix(包括Linux和Mac OS X)、Windows和QNX下编译,之后即可用于构建流媒体应用程序。这些库文件已被用于实现LIVE555 Media Server、LIVE555 Proxy Server(RTSP服务器应用)、liveCaster、playRTPMPEG(使用RTP/RTCP流化MP3文件)和vobStreamer(使用RTP/RTCP/RTSP流化DVD内容)。这些库还可以由于流化、接收、处理MPEG、H.264、H.263+、DV、JPEG图像和许多音频编码格式的文件。他们可以容易地扩张以支持其他编码格式,还可以用来构建基本的RTSP和SIP客户端、服务端。目前已被应用在一些支持流媒体的播放器上,比如VLC和MPlayer。(如何使用这些库文件的相关例子可以在下面的test program找到)。
源代码
项目源码包含在“.tar.gz”文件中,下面介绍如何编译他。
你正在计划实现RTP(或者RTSP、SIP)吗?除了自己从头开始写,可以考虑使用这些库。他们已经应用在许多基于RTP协议的应用中了,并且在嵌入式设备中表现良好。这些代码包括一个实现的RTCP,而且可以轻易地扩展(通过继承)来支持新的RTP负载格式。
------------------------------------------------------------------------------------------
1、描述(包括test programs)
2、如何在Unix上配置和编译代码
3、如何在Windows上配置和编译代码
4、FAQ
5、源码许可
6、todo…
7、一些第三方的应用
----------------------------------------------------------------------------------------------
描述
这份代码包括下面的库,每个都在自己的目录下:
UsageEnvironment
“UsageEnviroment”和“TaskScheduler”类用来安排延迟的事件、为异步的读取事件分派处理者、输出错误/警告信息。并且,“HashTable”这个类为通用的hash table定义了接口,被其他的代码使用。
这些都是虚拟的基类,他们必须被继承使用。继承的子类可以用来为应用程序实现一些特殊的功能——例如,GUI或者脚本运行环境。
groupsock
在这个库里的类封装了网络操作的接口和socket,比如,“Groupsocket”类分装了一个用于发送或接收多播数据包的socket。
liveMedia
这个库定义看一个类树——根部是“Medium”类——用于各种流媒体类型和编码。
BasicUsageEnvironment
这个库定义了一个“UsageEnvironment”类的具体实现,用于简单的控制台程序。读取事件和延迟操作通过一个select()方法的循环来处理。
---------------------------------------------------------------------------------------------------
testProgs
在这个目录下使用“BasicUsageEnvironment”实现了一些简单的程序来说明如何使用这些库来开发一个应用程序。
RTSPclient
在这个演示程序里,对接收到的音/视频数据没有做任何操作。然而,你可以在你的应用程序中使用或者适配这份代码,对接收到的数据解码或者播放什么的。
RTSPserver
SIPclient
MP3 audiotest programes
MPEG audio+video(Program Stream)test programs
…
…
-------------------------------------------------------------------------------------------------------------
如何在Unix上配置和编译代码
源代码文件(.tar.gz)。使用“tar-x”和“gnuzip”(或者“tar -xz”,ifavailable)解压,cd到“live”目录,run
./genMakefiles <os-platform>
<os-platform>是你的系统平台——比如“linux”或者“solaris”——在“config.<os-platform>”文件中定义的。这将在“live”目录和其子目录下各产生一个Makefile。然后运行“make”.
没有官方的安装步骤,你可以将"live/"目录放置到任何地方,但是你必须保证目录结构是完整的。你可能需要照着下面的做:
rm -rf /usr/local/lib/liv ; cp -r live /usr/local/lib
或者,你可以直接拷贝那些二进制库文件。
------------------------------------------------------------------------------------------------------------
如何在Windows上配置和编译代码
1、解压".tar.gz"文件;
2、如果在你电脑上的'tools'目录不是"c:\ProgramFiles\DecStudio\Vc",就需要更改"win32config"文件里的"TOOLS32="这一行;
3、这命令行下,cd到"live"目录,然后运行
genWindowsMakefiles
这将会通过Microsoft Visual Studio各个子目录下生成一个"*.mak"的可使用的makfile文件。
./genWindowsMakefiles
(之后如果有必要,将"TOOL32="这一行修改)然后再将"live"文件夹拷贝到windows的机器上面;
如果你使用Borland C++编译器
上面的说明针对Microsoft Visual Studio(version 5或更高)做编译环境,如果你使用的是Borland的开发工具,上面的说明就需要做如下的修改:
1、在运行"genWindowsMakefiles.cmd"脚本之前,将所有的"win32cnfig"替换为"win32config.Borland";
2、在运行"genWindowsMakefiles"之后,按如下提示编辑新生成的MakeFiles。
------------------------------------------------------------------------------------------------------------
To do…