live555—VS2010 下live555編譯、使用及測試

Ⅰ live555簡介

  Live555 是一個爲流媒體提供解決方案的跨平臺的C++開源項目,它實現了對標準流媒體傳輸協議如RTP/RTCP、RTSP、SIP等的支持。Live555實現了對多種音視頻編碼格式的音視頻數據的流化、接收和處理等支持,包括MPEG、H.263+、DV、JPEG視頻和多種音頻編碼。同時由於良好的設計,Live555非常容易擴展對其他格式的支持。目前,Live555已經被用於多款播放器的流媒體播放功能的實現,如VLC(VideoLan)、MPlayer。

  該項目的源代碼包括四個基本的庫,各種測試代碼以及IVE555 Media Server。四個基本的庫分別是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。


Ⅱ 下載

live555源碼http://www.live555.com/(官網)

 


Ⅲ 編譯步驟

方法一(Win7下命令方式)

0  綜述:利用genWindowsMakefiles.cmd生成VS可用的makefile

1  修改win32config。打開live\win32config文件,修改如下

TOOLS32 = c:\Program Files\DevStudio\Vc

TOOLS32 =  E:\Program   Files\Microsoft Visual Studio 10.0\VC

將TOOLS32修改爲你的VS2010路徑

LINK_OPTS_0   =        $(linkdebug) msvcirt.lib

LINK_OPTS_0   =   $(linkdebug)  msvcrt.lib

編譯器索要的LINK運行庫不同,原本以爲可以改爲msvcrt100.lib,但沒找着

2  新增Makefile設定。打開live\groupsock\Makefile.head,修改如下

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

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

3  建立makefile

  方法:運行live\genWindowsMakefiles.cmd,生成VS能夠編譯的*.mak文件

4  建立build.bat命令

  新建live\complie.bat,並添加內容如下:

複製代碼
call "E:\Program Files\Microsoft Visual Studio 10.0\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
複製代碼

5  開始編譯:(命令行下)執行complie.bat

6  編譯結果

6-1  在對應的文件下,如下圖

 生成與cpp文件對應的obj文件(Object File中間代碼文件,源文件complie生成,在linux下爲o文件

 生成lib庫: libBasicUsageEnvironment.lib、libgroupsock.lib、libUsageEnvironment.lib、libliveMedia.lib

 

6-2 在對應的文件下,如下圖:生成對應的obj文件和exe文件

 

說明:若要用VS2010對代碼進行調試跟蹤,那麼編譯時需要做相應修改,修改方法如下:

  方法一:修改*.mak文件下的NODEBUG 。不帶DEBUG,NODEBUG=1(默認);帶DEBUG,DEBUG=1

  方法二:在win32config加入一行 "NODEBUG=1" (不推薦)

 

方法二(Win7+VS2010方式)

  如果需要自己調試修改源碼,採用編譯器的方式會更好些,這種方式也更利於源碼分析,步驟如下:

0  綜述:分別爲每個庫單獨編譯生成lib

 

1  新建解決方案和lib工程,分別如下:

E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment
E:\My Document\Visual Studio 2010\Projects\myLive555\liveMedia
E:\My Document\Visual Studio 2010\Projects\myLive555\groupsock
E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment

  完整解決方案的結構如下圖

2  添加頭文件

  方法1:採用全局包含方式(絕對路徑)。需要添加的include文件包括

E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment\include
E:\My Document\Visual Studio 2010\Projects\myLive555\liveMedia\include
E:\My Document\Visual Studio 2010\Projects\myLive555\groupsock\include
E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment\include

  方法2:採用局部(當前工程)包含方式(相對路徑)。推薦

  描述工程->屬性->配置屬性->C/C++->常規->附加包含目錄

..\BasicUsageEnvironment\include
..\groupsock\include
..\liveMedia\include
..\UsageEnvironment\include

 

3  添加文件

    在上述lib工程中添加對應的所有的cpp文件。

4  設置工程的輸出目錄

  路徑:E:\My Document\Visual Studio 2010\Projects\myLive555\lib

  方法:項目-》屬性-》常規-》輸出目錄

5  編譯解決方案

  結果:在lib目錄下生成 BasicUsageEnvironment.lib、groupsock.lib、UsageEnvironment.lib、liveMedia.lib

 

下載編譯好的live555(lib和頭文件)

  方式一,環境爲Win7,包含編譯好的live555、提取的4libmyLive555Header和截圖下載猛擊

  方式二環境win7+VS2010,包含整個工程,下載猛擊

 


Ⅳ 使用實例

1   添加庫

①步驟一:

  方法1. 將編譯生成的四個lib庫庫拷貝到“*:\Program Files\Microsoft Visual Studio 10.0\VC\lib”下面

  方法2將編譯生成的四個lib庫庫拷貝到當前工程的cpp文件下

  方法3. 將編譯生成的四個lib庫作爲全局庫的形式添進工程

②步驟二

  方法1[菜單]“項目->屬性->配置屬性->連接器->輸入->附加依賴項”裏填寫

      “libUsageEnvironment.lib;libliveMedia.lib;libgroupsock.lib;libBasicUsageEnvironment.lib;Ws2_32.lib

  再次溫馨提醒VS2010中,多個lib之間需要用分號或者回車隔開,用空格行不通,切記!信不信由你了,我在這個地方又折騰了一會了,青春不在啊~

  方法2.  pragma 方式  

#pragma comment (lib, "Ws2_32.lib")  
#pragma comment (lib, "libBasicUsageEnvironment.lib")
#pragma comment (lib, "libgroupsock.lib")
#pragma comment (lib, "libliveMedia.lib")
#pragma comment (lib, "libUsageEnvironment.lib")


2  添加頭文件

說明:如果採用方式二編譯的,那麼此步驟可以省去

①步驟一:將所有的.h文件放到一起,myLive555Header裏面,再添加include

②步驟二

  方法1. “項目->屬性->配置屬性->C/C++->常規->附加包含目錄”

  方法2. “工具->選項->項目和解決方案->C++ 目錄”,選擇對應平臺,然後添加所需“包括文件”目錄(此法VS2010不通)

 

3  測試代碼

  直接用testProgs裏面的例子,我用的是testOnDemandRTSPServer.cpp,測試成功,如下圖

 

 


Ⅴ 測試live555服務器

方式一:(利用ffplay.exe播放)

1 把媒體文件放到和live555MediaServer.exe同一目錄

2 運行live555MediaServer.exe,彈出的dos框裏面有地址,如下圖

3 客戶端,dos下進入到ffplay所在文件夾下,然後輸入如下命令

    ffplay.exe rtsp://10.120.2.18/<媒體文件名>

  彈出視頻播放畫面,如下圖

 

方式二:(直接vlc中播放網絡流)

1 把媒體文件放到和live555MediaServer.exe同一目錄

2 打開vlc plaer,打開網絡串流,輸入rtsp,如下圖

3 點播放,開始播放,如下圖

 



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