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);
前者是用于SIM(source-independent multicast)组,后者用于SSM(source-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,文件->新建->从现有代码重建。选择项目位置,重命个工程名。选择
LIB或DLL库。 有四个库要四次。
注意:这里有些公用的代码在不同的文件夹下。 所以需要配置include 的路径。
第二种.新建一个空的工程。然后用添加项目,把四个工程都添加进来。然后添加相应的代
码。同样注意是LIB或DLL库。
最后编译LIVE555 Media Server是一个纯粹的RTSP服务器。
我们可以根据我们的需求去修改。
在windows使用vs2008编译live555
2010-08-27 11:48:23| 分类: 默认分类 | 标签: |字号大中小 订阅
1.live555源代码简介
liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。
四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,
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);
前者是用于SIM(source-independent multicast)组,后者用于SSM(source-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工程。
将工程解压于C:live(该路径可自己设定)下
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 、GROUPSOCK、liveMedia、UsageEnvironment4
个静态工程,重新编译所有工程,即可调试所有程序。


发布评论