当前位置: 首页 > 工具软件 > Omnimeeting > 使用案例 >

omnimeeting在vs2008中的编译

徐卓
2023-12-01

http://hi.baidu.com/pengjj0807/blog/item/2383ab8d0c20861bb31bba87.html

 

        omnimeeting提供的软件包包括omnistuff、streaming、gui三个主要文件和数据示例文件。这里讲的编译,主要是对工程omnimeeting进行编译,不过由于omnimeeting需要大量的其他文件中的库或文件,所以在编译它之前还需编译或配置其他的文件,以下是步骤:
(一)编译live555源代码
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等函数,并且屏蔽了不同的操作系统之间的区别,这是在 GroupsockHelper.cpp文件中实现的。
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源码包,http://www.live555.com/。网络上已经有大量的已经编译过的live555,这些对你来说只能当做参考了,要完成真正的编译,还是下载源码包。
    (2). 修改目录下的win32config文件,TOOLS32=C:/Program Files/Microsoft Visual Studio 9.0/VC,即保证这个路径是你的Vs2008 路径。
    (3). 编辑"LINK_OPTS_0 = $(linkdebug) msvcirt.lib" in win32config to "LINK_OPTS_0 = $(linkdebug) msvcrt.lib",由于编译器所要LINK的运行库不一样了
    (4). 修改groupsock/makefile.head,替换"INCLUDES = -Iinclude -I../UsageEnvironment/include" 为"INCLUDES = -Iinclude -I../UsageEnvironment/include -DNO_STRSTREAM".其他文件下的makefile.head文件做同样修改。
    (5). 运行genWindowsMakefiles.cmd 生成VS能够编译的*.mak文件
    (6). 将以下内容保存为live/compile.bat
call "C:/Program Files/Microsoft Visual Studio 9.0/VC/vcvarsall.bat"
cd liveMedia
nmake /B -f liveMedia.mak
cd ../groupsock
nmake /B -f groupsock.mak
cd ../UsageEnvironment
nmake /B -f UsageEnvironment.mak
cd ../BasicUsageEnvironment
nmake /B -f BasicUsageEnvironment.mak
cd ../testProgs
nmake /B -f testProgs.mak
cd ../mediaServer
nmake /B -f mediaServer.mak
cd ../WindowsAudioInputDevice
nmake /B -f WindowsAudioInputDevice.mak
有关这一点来说,建议把vs2008的编译环境加入到环境变量中,那么以后需用命令行编译程序都可行了,可以参考http://blog.chinaunix.net/u3/94873/showart_1907792.html的前部分设置VS2008的环境设置。
    (7). 在命令行下运行compile.bat,就会看到很多编译过程出现在CMD中了。
以上的编译并不是DEBUG模式,要调试时,应先在win32config加入一行"NODEBUG=1"
进行编译后,可以在要调试的程序路径下输入如:C:/works/VCCode/video/live555-latest/live/testProgs>devenv openRTSP.exe。
(需要用到live555中的已编译库)
(二)下载安装OpenCV1.0,默认安装即可(需要此文件的头文件和源文件)
(三)下载安装wxWidgets-2.8.10,然后编译wxWidgets-2.8.10生成wxWidgets-2.8.10库,如下:
进入C:/wxWidgets-2.8.10/build/msw,用VC打开wx.dsw工程文件。进入Build—〉Batch Build,只选中所有工程各自的Win32 Release和Win32 Debug版本,然后开始Build。等待十来分钟...
(需要此文件的编译库)
(四)下载安装fmod(需要此文件的头文件和源文件)
(五)下载安装cg toolkit(需要此文件的头文件和源文件)
(六)下载解压openGL(需要此文件的头文件和源文件)
(七)下载解压ffmpeg(需要此文件的编译库)
(八)打开omnimeeting工程,先编译libomnistream_lib和libomnistuff_lib两个工程,因为omnimeeting会用到这两个工程编译好了的库文件。
(九)编译omnimeeting。
PS:第八步和第九步要进行头文件库文件路径的配置,这可以根据编译错误提示一步步的添加。部分可参考本人的上篇文章:http://hi.baidu.com/pengjj0807/blog/item/425d7944a042e48bb3b7dc65.html
此处文件比较多,这里就不提供下载来源,不过多数都可以从网上找的到,但是这些开源代码多数是国外的,下载速度比较慢,建议在国内的一些站点下载,比如csdn、pudn等都有大量的代码供下载。确实找不到的可联系本人。

 类似资料: