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,這樣就會把相關的調試環境搭建起來進行調試了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章