Live555分析(一):VS2008编译

背景:

RTSP(Real Time Streaming Protocol)实时流媒体协议: RFC 2326

The Real Time Streaming Protocol, or RTSP, is an application-level protocol for control over the delivery of data with real-time properties. RTSP provides an extensible framework to  enable controlled,
on-demand delivery of real-time data, such as audio and video. Sources of data can include both live data feeds and stored clips. This protocol is intended to control multiple data delivery sessions, provide a means for choosing delivery channels such as UDP, multicast
UDP and TCP, and provide a means for choosing delivery mechanisms based upon RTP (RFC 1889).

Live555是一个完整的RTSP服务器应用程序。

This code forms a set of C++ libraries for multimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). These libraries - which can be compiled for Unix (including Linux and Mac OS X),
Windows, and QNX (and other POSIX-compliant systems) - can be used to build streaming applications. The libraries are already being used to implement applications such as the "LIVE555 Media Server"
and "LIVE555 Proxy Server" (RTSP server applications), and "vobStreamer" (for streaming DVD content using RTP/RTCP/RTSP). The
libraries can also be used to stream, receive, and process MPEG, H.265, H.264, H.263+, DV or JPEG video, and several audio codecs. They can easily be extended to support additional (audio and/or video) codecs, and can also be used to build basic RTSP or SIP clients
and servers, and have been used to add streaming support to existing media player applications, such as "VLC" and "MPlayer". (For some
specific examples of how these libraries can be used, see the test programs below.)

Q.Windows下如何编译Live555?

Live555发布的代码中没有提供vs solution工程,但是通过nmake编译还是比较方便的,几乎不费周折。

具体的可以参考: http://www.live555.com/liveMedia/#config-windows

打开genWindowsMakefile.cmd文件, 可以看出此bat脚本还是比较简单的,只是根据各目录中的Makefile.head, Makefile.tail以及win32config文件生成.mak文件。

查看一下win32config文件

其中的两项需要做修改:

第一项是:

TOOLS32	=		C:\Program Files\Microsoft Visual Studio 9.0\VC

第二项是:

LINK_OPTS_0 =		$(linkdebug) msvcrt.lib

执行genWindowsMakefile.cmd脚本后,在各个目录中将会生成.mak文件。利用vs自带的nmake可以直接编译了。

为了方便,不妨写一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

执行一下上面的脚本,就会在目录中生成.lib和.exe文件。

然而,没有solution工程,分析代码确实不太舒服。为了长久打算本人新建了一份solution工程,结构为:

live

vs2008_live555

│  clean.bat

│  vs2008_live555.sln

├─BasicUsageEnvironment

│      BasicUsageEnvironment.vcproj

├─Groupsock

│      Groupsock.vcproj

├─liveMedia

│      LiveMedia.vcproj

├─MediaServer

│      MediaServer.vcproj

├─ProxyServer

│      ProxyServer.vcproj

└─UsageEnvironment

UsageEnvironment.vcproj

其中, live目录是代码所在的目录。目录意义请参考:http://www.live555.com/liveMedia/。

为了省去诸君的麻烦,本人把整个工程上传了一份。请猛击

至于如何测试RTSP Server,可以参考,http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html及

http://blog.csdn.net/beitiandijun/article/details/9232405。

Live555分析(一):VS2008编译,布布扣,bubuko.com

时间: 2024-10-26 20:25:08

Live555分析(一):VS2008编译的相关文章

VS2008编译GDAL 1.8.1(转)

GDAL1.9.2 全套 如何在c++下进行nc问件的转换 起初,我的思路是这样,首先编译一个netcdf的库,然后用里面的函数进行读取文件.进行存储.再通过gdal里面的函数进行转换. 但是在编译netcdf库的时候,会发现大部分都是在linux下进行的.所以,浪费了我很多的时间. 后来经过录歌的剖析,其实可以讲netcdf和gdal直接编译.将netcdf封装在gdal里.通过调用gdal直接读取nc文件. 此库已经编译好了.有愿意下载的读者可以按照以下链接进行下载. http://down

Live555 分析(三):客服端

live555的客服端流程:建立任务计划对象--建立环境对象--处理用户输入的参数(RTSP地址)--创建RTSPClient实例--发出DESCRIBE--发出SETUP--发出PLAY--进入Loop循环接收数据--发出TEARDOWN结束连接. 可以抽成3个函数接口:rtspOpen rtspRead rtspClose. 首先我们来分析rtspOpen的过程: int rtspOpen(rtsp_object_t *p_obj, int tcpConnect) { ... ... TRA

VS2008编译bat

工程文件为AirCode,批处理文件为bulit.bat(与*.sln文件在同级目录). 以下是批处理的代码: echo %~dp0 rem set build_config="Debug|Win32" rem set build_config=$ALL set build_config="Release|Win32" rem set vs2008 cli environment call "%VS90COMNTOOLS%VSVARS32.BAT"

【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.willowgarage.com/wiki/InstallGuide 2.在"2) Install Prerequisite Libraries and Tools"中提到了如果想支持Python调用需要Python 2.6或者 2.7版本,而且还需要NumPy和SciPy库.升级Python至2

Live555学习之一 源代码编译

Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视频数据的流化.接收和处理等支持,包括MPEG.H.263+.DV.JPEG视频和多种音频编码.同时由于良好的设计,Live555非常容易扩展对其他格式的支持.目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan).MPlayer. 从今天开始我们将一起学习live555源码

VS2008 编译 libpng库

一.下载libpng和zlib http://sourceforge.net/projects/libpng/ http://sourceforge.net/projects/libpng/files/zlib/ 二.解压libpng和zlib到同一文件夹下!并更名文件夹zlib...为zlib 三.打开libpng.sln或libpng.vcproj 设置libpng工程所有配置为不使用预编译头,编译相应版本即可. VS2008 编译 libpng库,码迷,mamicode.com

32位win7+vs2008编译mysql 5.6.22源码并安装

以下这部分安装说明是来自http://www.2cto.com/database/201407/316681.html的win7+vs2010源码编译mysql,文章最后会说明用vs2008编译遇见的一些问题以及源码安装mysql5.6.22 最近由于在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制,目前萌生了要研究一下mysql数据库源码的想法.那么好吧,说干就干,首先我们需要实现对源码的编译,这里我们选择win7+VS2010来实现,但是试了很多次都失败了.这是我多次配置

vs2008编译错误fatal error C1902: 程序数据库管理器不匹配;请检查安装解决

重装了本本上的Xp系统,如往常一样,升级,装杀毒软件,开发工具.一些进行的非常顺利.然而,在我打开VS2008准备耕作的时候,尽然出现了一邪恶的错误提示:vs2008编译错误fatal error C1902: 程序数据库管理器不匹配:请检查安装解决.进过多家的方法,均无效,重装VS也不行,最后终于百度到一无名大侠的解决方案,问题解决了,在这里记录下来,以备再有不测. 到C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE下面拷贝msp

VS2008编译错误:error C2065: 'PMIB_TCPSTATS' : undeclared identifier c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iphlpapi.h 411

安装了VS2008编译之前的程序,结果出现了编译错误,以为是VS2008的Sp1补丁没装好,重装补丁后还是不行,编译错误如下: 双击错误会定位在iphlpapi.h中, 一个可行的解决办法是:把iphlpapi.h文件的line386---line421 都注释掉了: 然后再尝试编译,编译成功,运行也没有问题. 看起来,这几行代码不会影响程序运行. VS2008编译错误:error C2065: 'PMIB_TCPSTATS' : undeclared identifier c:\program