登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [流媒体/rtsp]Windows下通过VC++6.0编译live555工程     [回主站]     [分站链接]
标题
[流媒体/rtsp]Windows下通过VC++6.0编译live555工程
clq
浏览(0) + 2010-08-30 14:51:50 发表 编辑

关键字:

[2018-02-18 06:46:08 最后更新]
参考 http://fancylife.blog.51cto.com/920524/197406
和 http://blog.csdn.net/gmkb/archive/2008/05/04/2380398.aspx

clq
2010-8-30 14:52:39 发表 编辑

1.从http://www.live555.com/openRTSP/下载最新LIVE源码

2.根据说明更改WIN32CONFIGURE中TOOLS=为C:\Program Files\Microsoft Visual Studio\VC98.注意此处不能带BIN且更改后目录后要留出一个空格.

3.切换到DOS进入LIVE目录,执行genWindowsMakefiles,这时会在BasicUsageEnvironment/groupsock/liveMedia/UsageEnvironment每个目录下生成一个*.mak.  

4.进入VC将TOOLS\OPTIONS\DIRECTORYS中INCLUDE FILE目录增加LIVE相应的INCLUDE目录.

5.按顺序打开每个.mak生成(BUILD)一遍(testProgs.mak除外),会在对应目录生成一个lib*.lib

6.最后打开testProgs.mak生成*.exe,这样openRTSP.exe等就可以用了.

7.注意不能下载RTSP://.RM .RMVB,郁闷!


clq
2010-8-30 14:53:02 发表 编辑

添加路径
    C:\live\BasicUsageEnvironment\include
    C:\LIVE\GROUPSOCK\INCLUDE
    C:\LIVE\USAGEENVIRONMENT\INCLUDE
    C:\LIVE\LIVEMEDIA\INCLUDE

clq
2010-8-30 14:53:49 发表 编辑

Windows下通过VC++6.0编译live555工程(可调试)


2009-08-31 20:04:20
 标签:live555   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fancylife.blog.51cto.com/920524/197406
   本博文乃吾之第一篇原创博文,主要讲述如何在VC++6.0编译环境中调试编译类媒体开源工程LIVE555.
   首先,我们从http://live555.com/liveMedia/public/live555-latest.tar.gz
下载最新版的live555工程。
    将工程解压于C:\live(该路径可自己设定)下
    1、配置编辑环境:打开VC++6.0开发环境,点击工具-选项-目录对话框,目录下拉对列表框中选定:inlcue files
   在下面添加路径
    C:\live\BasicUsageEnvironment\include
    C:\LIVE\GROUPSOCK\INCLUDE
    C:\LIVE\USAGEENVIRONMENT\INCLUDE
    C:\LIVE\LIVEMEDIA\INCLUDE
 

    2、新建Win32 Static Library工程,工程名为BasicUsageEnvironment 位置 C:\live\BasicUsageEnvironment 点击下一步-完成。
   将
live555工程中BasicUsageEnvironment文件夹下.cpp文件添加至工程源文件中,将include文件夹下文件添加至工程头文件夹中。
   在FileView视图中右击工程,选择 设置-Library
在文本框中写入 ..\lib\BasicUsageEnvironment.lib
   编译即可在live目录下lib文件夹中生成
BasicUsageEnvironment.lib
   3、新建Win32 Static Library工程,工程名为GROUPSOCK位置 C:\live\GROUPSOCK 点击下一步-完成。
   将live555工程中GROUPSOCK
文件夹下.cpp文件添加至工程源文件中,将include文件夹下文件添加至工程头文件夹中。
   在FileView视图中右击工程,选择 设置-Library
在文本框中写入 ..\lib\
GROUPSOCK .lib
   编译即可在live目录下lib文件夹中生成GROUPSOCK.lib
   4、新建Win32 Static Library工程,工程名为UsageEnvironment位置 C:\live\UsageEnvironment点击下一步-完成。
   将live555工程中UsageEnvironment
文件夹下.cpp文件添加至工程源文件中,将include文件夹下文件添加至工程头文件夹中。
   在FileView视图中右击工程,选择 设置-Library
在文本框中写入 ..\lib\UsageEnvironment.lib
编译即可在live目录下lib文件夹中生成UsageEnvironment.lib
   5、新建Win32 Static Library工程,工程名为liveMedia位置 C:\live\liveMedia点击下一步-完成。
   将live555工程中liveMedia
文件夹下.cpp文件添加至工程源文件中,将include文件夹下文件添加至工程头文件夹中。
   在FileView视图中右击工程,选择 设置-Library
在文本框中写入 ..\lib\liveMedia.lib
编译即可在live目录下lib文件夹中生成liveMedia.lib
   (其实2-4步过程差不多,主要是生成库文件)
   6、单击 VC++6.0菜单中的工具-选项 在目录中选择 Library files
在下面添加:
   C:\LIVE\LIB
   好了,live 555工程所需要的库文件都编译好了,下面只需要在所需要的应用程序中连接4个库文件即可。
  在这里我举一个例子:
   新建一个Win32 Console Application工程,名为Server
路径为C:\LIVE\Server,选择空工程。
    在live555工程testProgs文件夹下拷贝testOnDemandRTSPServer.cpp 到 Server文件夹下。
    在Server工程中的源文件中添加
testOnDemandRTSPServer.cpp 在FileView视图中右击工程,
选 择 设置-连接-对象/库模块 在 对话框中添加 BasicUsageEnvironment.lib GROUPSOCK.lib liveMedia.lib UsageEnvironment.lib ws2_32.lib 五个库文件其中前三个是live工程库文件,最后一个是windows库文件。
 

   编译即可运行。
   如果想要编译库文件,需在Server工作区工程中,添加前面编译的
BasicUsageEnvironment 、GROUPSOCKliveMediaUsageEnvironment4个静态工程,重新编译所有工程,即可调试所有程序。

本文出自 “FancyLIfe” 博客,请务必保留此出处http://fancylife.blog.51cto.com/920524/197406


clq
2010-8-30 14:54:11 发表 编辑

在windows使用vs2008编译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/
    (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".
    (5). 运行genWindowsMakefiles.cmd 生成VS能够编译的*.mak文件
    (6). 将以下内容保存为live/compile.bat
call "C:\Program Files\Microsoft Visual Studio 9\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

有关这一点来说,建议把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,这样就会把相关的调试环境搭建起来进行调试了。

 TAG windows live555 视频
发表于: 2009-07-04,修改于: 2009-07-04 22:30,已浏览1969次

clq
2010-8-30 15:34:17 发表 编辑

添加路径
    C:\live\BasicUsageEnvironment\include
    C:\LIVE\GROUPSOCK\INCLUDE
    C:\LIVE\USAGEENVIRONMENT\INCLUDE
    C:\LIVE\LIVEMEDIA\INCLUDE

这几个路径的顺利还挺重要的,我第次在 vs2008 中编译没通过好象就是这个顺序引起的.
另外不编译为 lib 也是可以的,比如要编译 live555MediaServer.exe 只要将 \mediaServer 下的两个文件加入到工程中,再依次加入相关的 libBasicUsageEnvironment.lib libgroupsock.lib libUsageEnvironment.lib libliveMedia.lib 所需要的相应的 cpp/c 文件然后再编译就可以了,注意不要加入多余的文件! 也要注意相关文件夹下的所有 c 文件都要加入(我开始以为全部是 cpp 文件结果编译了老半天还说 link 时某个函数不存在).

编译时附加的vs2008 lib 如下:
ws2_32.lib
kernel32.lib
advapi32.lib
shell32.lib

clq
2010-8-30 15:40:15 发表 编辑


我先说一下用命令行产生一个http直播源的方法
vlc -vvv "d:\1.mp4" --loop --sout #duplicate{dst=std{access=http,mux=ts,dst=192.168.2.3:8088},dst=display}

要看的话就打命令行
vlc http:://192.168.2.3:8080


产生一个rtsp源的方法
vlc -vvv "d:\1.mp4" --loop --sout #rtp{dst=192.168.2.3,mux=ts,port=1234,sdp=rtsp://192.168.2.3:8087/test.sdp}
查看方式:
vlc rtsp://192.168.2.3:8087/test.sdp

将一个rtsp源录下来
vlc  rtsp://192.168.0.139:8087/test.sdp  --sout=#duplicate{dst=std{access=file,mux=ts,url=d:/test.mp4},dst=display}

参考:
http://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples
--------------------------------------------------
没试过,留着作为参考.


总数:6 页次:1/1 首页 尾页  
总数:6 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1