Darwin Streaming Server編譯執行過程

NO IMAGE

一:編譯

Darwin6.0.3版本是最新版本,也提供了.dsw檔案。但是使用vs2005和vc6是編譯不過的。
所以,採用Darwin5.5.5版本。使用vc6開啟WinNTSupport資料夾下的.dsw工程,直接batch build,可一步生成。

使用vc編譯速度快,但是除錯和看程式碼不如2005方便。
下面主要是使用vs2005編譯的問題。

轉換vs2005的sln後,提示沒有StreamingloadingTool這個工程,不用管,因為伺服器不依賴於該工程。

(1)    提示:winsock2某些函式重定義。
方法:在所有#include <windows.h> 前面加上:
#define WIN32_LEAN_AND_MEAN    //zl
#include <windows.h>
(2)    提示:
error   C2039:   ‘timeGetTime’   :   is   not   a   member   of   ‘`global   namespace”
       方法:包含標頭檔案Mmsystem.h,並在工程設定中引入該Winmm.lib庫就OK了  
  Requirements     
      Windows   NT/2000:   Requires   Windows   NT   3.1   or   later.   
      Windows   95/98:   Requires   Windows   95   or   later.   
      Header:   Declared   in   Mmsystem.h.   
      Library:   Use   Winmm.lib.  
    注意:加在其他標頭檔案前面,並且形式如下,三行都要加上:
    #define WIN32_LEAN_AND_MEAN    //zl
#include <windows.h>    //zl
#include <Mmsystem.h>    //add by zl
(3)    error C2894: templates cannot be declared to have ‘C’ linkage
方法:QTSS.hOSHeader.hws2tcpip.hwspiapi.h
在QTSS.h中,使用了extern “C” 來包含標頭檔案,結果造成這個錯誤。template只在c 中存在。 解決方法是註釋掉QTSS.h 中的extern “C” {  和 }
(4)    在StreamingServer工程中,QTSSRTSPProtocol.h中也有extern “c” {…OSHeader.h…},同樣去掉extern部分
==========================================
二:執行
    在使用vs2005編譯完Debug版本之後,生成如下
   
讀ReadMe-MakeInstall.txt,瞭解安裝方法。現總結如下:
(1)    編輯makeZip.bat,使他copy Debug下的可執行檔案,而不是Release下的。
(2)    雙擊執行makezip.bat,會在當前資料夾下生成

 主要是下面那個有用。
它裡面有exe,dll,還有從安裝包其他目錄拷過來的媒體檔案。
(3)    將DarwinStreamingServer資料夾打包。
安裝包生成完畢。

執行方法:
    開啟DarwinStreamingServer資料夾,雙擊Install.bat,即自動將程式拷貝至C:/Program Files/Darwin Streaming Server/…下,並生成Movies目錄,放置媒體檔案。具體過程想了解的話可看Install.bat內容。
    命令列視窗開啟C:/Program Files/Darwin Streaming Server/  執行:
#DarwinStreamingServer -d        即啟動伺服器。
使用流媒體播放器輸入 rtsp://localhost:554/Sample_100kbit.mov 可看視訊。

============================================

Debug方法,生成的Debug版本的DarwinStreamingServer資料夾之後,雙擊安裝Install.bat,自動安裝到C盤。直接點debug就可以了。注意媒體檔案放在C盤安裝目錄下,不要放在原始碼的DarwinStreamingServer資料夾下。程式讀取的是c盤那個指定資料夾下的東西。

======================================

#Darwinstreamingserver  選項引數在文件中沒有。可以從程式中看有哪些選項。同時也可以 -v 命令看有哪些選項。

編譯的時候哪裡設定了可以顯示每個RTP包的資訊,不知道在哪,忘了。 是printfpacket之類的函式作用。