所以呢..... 如果想要搞清楚這些串流是怎麼一回事, 最好把 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