2023年11月27日发(作者:)

vs2008编译live555

分类: 工作问题 2011-03-21 10:02 273人阅读 评论(0) 收藏 举报

介绍:

四个基本的库分别是

nvironment&TaskScheduler

用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。另外,还有

一个HashTable类定义了一个通用的 hash表,其它代码要用到这个表。这些都是抽象类,

在应用程序中基于这些类实现自己的子类。

sageEnvironment

BasicUsageEnvironment中的类主要是对UsageEnvironment中对应类的实现。

ock

groupsock类是对网络接口的封装, 用于收发数据包。正如名字本身,Groupsock

要是面向多播数据的收发的,它也同时支持单播数据的收发。Groupsock定义了两个构造

函数

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

Port port, u_int8_t ttl);

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

struct in_addr const& sourceFilterAddr,

Port port);

前者是用于SIMsource-independent multicast)组,后者用于SSMsource-specific

multicast)组。groupsock库中的Helper例程提供了读写socket等函数,并且屏蔽了不同

的操作系统之间的区别,这是在 文件中实现的。

dia

liveMedia库中有一系列类,基类是Medium,这些类针对不同的流媒体 类型和编码。

对应四个文件夹下。

其中LIVE555 Media Server是一个纯粹的RTSP服务器。支持多种格式的媒体文件:

* TS流文件,扩展名ts

* PS流文件,扩展名mpg

* MPEG-4视频基本流文件,扩展名m4e

* MP3文件,扩展名mp3

* WAV文件(PCM),扩展名wav

* AMR音频文件,扩展名.amr

* AAC文件,ADTS格式,扩展名aac

vs2008编译方法:

1.下载 live555,

2.解压

这里有两种方法可以做,其实是一种方法。

第一种. 打开vs2008,文件->新建->从现有代码重建。选择项目位置,重命个工程名。选择

LIBDLL库。 有四个库要四次。

注意:这里有些公用的代码在不同的文件夹下。 所以需要配置include 的路径。

第二种.新建一个空的工程。然后用添加项目,把四个工程都添加进来。然后添加相应的代

码。同样注意是LIBDLL库。

最后编译LIVE555 Media Server是一个纯粹的RTSP服务器。

我们可以根据我们的需求去修改。

windows使用vs2008编译live555

2010-08-27 11:48:23| 分类: 默认分类 | 标签: |字号大中小 订阅

1.live555源代码简介

liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server

UsageEnvironment&TaskSchedulergroupsockliveMedia

BasicUsageEnvironment

UsageEnvironment TaskScheduler类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息

的输出。另外,还有一个HashTable类定义了一个通用的 hash表,其它代码要用到这个表。这些都是抽

象类,在应用程序中基于这些类实现自己的子类。

groupsock类是对网络接口的封装,用于收发数据包。正如名字本身,Groupsock主要是面向多播数据的

收发的,它也同时支持单播数据的收发。Groupsock定义了两个构造函数

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

Port port, u_int8_t ttl);

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

struct in_addr const& sourceFilterAddr,

Port port);

前者是用于SIMsource-independent multicast)组,后者用于SSMsource-specific multicast)组。

groupsock库中的Helper例程提供了读写socket等函数,并且屏蔽了不同的操作系统之间的区别,这是

文件中实现的。

liveMedia库中有一系列类,基类是Medium,这些类针对不同的流媒体类型和编码。

各种测试代码在testProgram目录下,比如openRTSP等,这些代码有助于理解liveMedia的应用。

LIVE555 Media Server是一个纯粹的RTSP服务器。支持多种格式的媒体文件:

* TS流文件,扩展名ts

* PS流文件,扩展名mpg

* MPEG-4视频基本流文件,扩展名m4e

* MP3文件,扩展名mp3

* WAV文件(PCM),扩展名wav

* AMR音频文件,扩展名.amr

* AAC文件,ADTS格式,扩展名aac

2.在windows下编译live555

(1).下载live555,/

(2). 编辑 win32config,TOOLS32=C:Program FilesMicrosoft Visual Studio 9.0VC

即保证这个路径是你的Vs2008 路径。

(3). 编辑"LINK_OPTS_0 = $(linkdebug) " in win32config to "LINK_OPTS_0 = $(linkdebug)

",由于编译器所要LINK的运行库不一样了

(4). 修改groupsock/,替换"INCLUDES = -Iinclude -I../UsageEnvironment/include"

"INCLUDES = -Iinclude -I../UsageEnvironment/include -DNO_STRSTREAM".

(5). 运行 生成VS能够编译的*.mak文件

(6). 将以下内容保存为live/

call "C:Program FilesMicrosoft Visual Studio "

cd liveMedia

nmake /B -f

cd ../groupsock

nmake /B -f

cd ../UsageEnvironment

nmake /B -f

cd ../BasicUsageEnvironment

nmake /B -f

cd ../testProgs

nmake /B -f

cd ../mediaServer

nmake /B -f

有关这一点来说,建议把vs2008的编译环境加入到环境变量中,那么以后需用命令行编译程序都可行了,

可以参考/u3/94873/showart_的前部分设置VS2008的环境设置。

(7). 在命令行下运行,就会看到很多编译过程出现在CMD中了。

以上的编译并不是DEBUG模式,要调试时,应先在win32config加入一行"NODEBUG=1"

C:worksVCCodevideolive555-latestlivetestProgs>devenv openRTSP.exe,这样就会把相关的调试环境

搭建起来进行调试了。

本博文乃吾之第一篇原创博文,主要讲述如何在VC++6.0编译环境中调

试编译类媒体开源工程LIVE555.

首先,我们从

/liveMedia/public/

载最新版的live555工程。

将工程解压于Clive(该路径可自己设定)下

1、配置编辑环境:打开VC++6.0开发环境,点击工具-选项-目录

对话框,目录下拉对列表框中选定:inlcue files

在下面添加路径

C:liveBasicUsageEnvironmentinclude

C:LIVEGROUPSOCKINCLUDE

C:LIVEUSAGEENVIRONMENTINCLUDE

C:LIVELIVEMEDIAINCLUDE

2、新建Win32 Static Library工程,工程名为

BasicUsageEnvironment 位置 C:liveBasicUsageEnvironment 点击

下一步-完成。

live555工程中BasicUsageEnvironment文件夹下.cpp文件添加

至工程源文件中,将include文件夹下文件添加至工程头文件夹中。

FileView视图中右击工程,选择 设置-Library

在文本框中写入 ..

编译即可在live目录下lib文件夹中生成

3、新建Win32 Static Library工程,工程名为GROUPSOCK位置

C:liveGROUPSOCK 点击下一步-完成。

live555工程中GROUPSOCK文件夹下.cpp文件添加至工程源文件

中,将include文件夹下文件添加至工程头文件夹中。

FileView视图中右击工程,选择 设置-Library

在文本框中写入 ..libGROUPSOCK .lib

编译即可在live目录下lib文件夹中生成

4、新建Win32 Static Library工程,工程名为UsageEnvironment

位置 C:liveUsageEnvironment点击下一步-完成。

live555工程中UsageEnvironment文件夹下.cpp文件添加至工程

源文件中,将include文件夹下文件添加至工程头文件夹中。

FileView视图中右击工程,选择 设置-Library

在文本框中写入 ..

编译即可在live目录下lib文件夹中生成

5、新建Win32 Static Library工程,工程名为liveMedia位置

C:liveliveMedia点击下一步-完成。

live555工程中liveMedia文件夹下.cpp文件添加至工程源文件

中,将include文件夹下文件添加至工程头文件夹中。

FileView视图中右击工程,选择 设置-Library

在文本框中写入 ..

编译即可在live目录下lib文件夹中生成

(其实2-4步过程差不多,主要是生成库文件)

6单击 VC++6.0菜单中的工具-选项 在目录中选择 Library files

在下面添加:

C:LIVELIB

好了,live 555工程所需要的库文件都编译好了,下面只需要在所

需要的应用程序中连接4个库文件即可。

在这里我举一个例子:

新建一个Win32 Console Application工程,名为Server

路径为C:LIVEServer,选择空工程。

live555工程testProgs文件夹下拷贝

Server文件夹下。

Server工程中的源文件中添加

FileView视图中右击工程,

选择 设置-连接-对象/库模块 对话框中添加

ws2_ 五个库文件其中前三个是live

程库文件,最后一个是windows库文件。

编译即可运行。

如果想要编译库文件,需在Server工作区工程中,添加前面编译的

BasicUsageEnvironment GROUPSOCKliveMediaUsageEnvironment4

个静态工程,重新编译所有工程,即可调试所有程序。