原創。
一:編譯
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.hOSHeader.hws2tcpip.hwspiapi.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之類的函數作用。