您的位置:首页 > 其它

live555 visual 2005 编译

2009-01-21 22:19 260 查看
live555 是一個很有用的多媒體串流程式庫, 其中包含了許多有用的 source code, 例如: 他實做了 RTP/RTCP/RTSP/SIP 串流的接收與傳送, 一些有名的多媒體串流播放器如: VLC 或 MPlayer, 都是使用這個 library 做串流的處理.

所以呢..... 如果想要搞清楚這些串流是怎麼一回事, 最好把 source code 拿回來編譯一下.

你可以在下面拿到 live media 專案的 source code

http://www.live555.com/liveMedia/
因為原來介紹的編譯方法, 已經不適用於 Visual Studio 2005 了, 所以 Steve 先生, 提出了他的解決方案, 你可以在下面的 blog 得到相關的編譯知識.
http://letsgoustc.spaces.live.com/blog/cns!89AD27DFB5E249BA!167.entry
 
為了怕他的 blog 掛掉, 或者是文章刪除, 所以我這裡複製了一份他的作法, 並根據  live.2008.09.02.tar.gz 這個版本, 做了必要的修正. (如果不做修正, 則會編譯失敗)
如果你按照下面的作法, 應該能夠安安靜靜並且非常順利地編譯完成.
請注意版本
  1.  liveMedia 版本為 live.2008.09.02
  2. Visual Studio 2005
 
Step 1. 設定編譯器位置

打開 win32config 檔案, 修改 "TOOLS32 = ..."  為 你的 Visual Studio 2005 VC 的位置

ex:

"TOOLS32 =  C:/Program Files/Microsoft Visual Studio 8/VC"
Step 2. 修正錯誤的檔名

     a.   把 win32config 裡面的

            "LINK_OPTS_0 =  $(linkdebug) msvicrt.lib" 改成

            "LINK_OPTS_0 =  $(linkdebug) msvcrt.lib"

Step 3. 建立 Makefile

      直接執行 genWindowsMakefiles.cmd

 

<下面這部分不用作了>

4. Modify liveMedia/RTSPOverHTTPServer.cpp to add the following code:

#include <string.h>
#if defined(__WIN32__) || defined(_WIN32)
#define snprintf _snprintf
#endif

Step 4: 修改程式碼 (下面是 Jing 的修正)

   1. 修改 /group/Groupsock.cpp

#if (defined(__WIN32__) || defined(_WIN32)) && !defined(__MINGW32__)
#include <strstrea.h>

改為

#if (defined(__WIN32__) || defined(_WIN32)) && !defined(__MINGW32__)
#include <strstream>

  2. 修改 /group/NetInterface.cpp 第 26 行

#include <strstrea.h> 改為 #include <strstream>

Step 5.  新增 Makefile 設定 

      a. 打開 groupsock/Makefile.head

      b. 修改

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

           成為

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

 

Step 6. 建立 build.bat 命令批次檔

把下面的文件內容, 存成 build.bat 檔, 存放在 live 目錄底下

-----------------------------------------------------------------------------------

call "C:/Program Files/Microsoft Visual Studio 8/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

-----------------------------------------------------------------------------------

Step 7. 開始編譯

             執行 build.bat

 

測試與驗證: 你可以在 live/testPogs 裡面找到有名的 openRTSP.exe

接者你就可以把他改成你想要的軟体元件, 例如: DirectShow RTSP source filter

 

Enjoy.

 

by Jing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息