天天看點

live555源碼vs2010環境下編譯

                                            Live555研究之一 源代碼編譯

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

     從今天開始我們将一起學習live555源碼,第一步就是學習編譯live555源碼。雖然網上有不少已經配置好的工程,但自己動手編譯卻有另外一番樂趣。

  Live555源代碼包括四個基本的庫,分别是UsageEnvironmentr、groupsock、liveMedia、BasicUsageEnvironment。Media Server(伺服器程式)和各種測試代碼。

  

本文使用vc2010編譯環境。

一、獲得live555源碼

    1. live555官網http://www.live555.com/

    2. 從csdn下載下傳獲得http://download.csdn.net/detail/ithzhang/7654535。

    解壓後的源碼如下圖所示:

live555源碼vs2010環境下編譯

     包括上述四個庫和mediaServer伺服器程式,以及其他的測試代碼。

二、建立工程

     1. 打開vc2010,建立win32控制台應用程式,項目名稱為BasicUsageEnvironment,指定新解決方案的位置,解決方案名稱live555,如下圖:

live555源碼vs2010環境下編譯

      2.點選确定,在此後的下一步配置中,按下圖配置:

live555源碼vs2010環境下編譯

      3.添加建立項目,選擇win32控制台項目,項目名稱為UsageEnvironment。

live555源碼vs2010環境下編譯

      4.點選确定和下一步後,按下圖配置

live555源碼vs2010環境下編譯

       5. 重複3的步驟,添加groupsock 、liveMedia項目。

       6. 添加mediaServer工程,并按如下配置:

live555源碼vs2010環境下編譯

         7. 五個工程均建立完畢,添加後的解決方案結構圖如下:

live555源碼vs2010環境下編譯

三、将源檔案加入工程

     1. 打開源碼目錄,将BasicUsageEnvironment、UsageEnvironment、groupsock、mediaServer、liveMedia目錄下的include目錄和cpp檔案拷貝到上述建立的對應的工程目錄下。BasicUsageEnvironment拷貝後的效果如下圖:

live555源碼vs2010環境下編譯

       2、接着就是将這些檔案添加進對應項目,将每個工程下的cpp添加到源檔案篩選器下,頭檔案則添加到頭檔案篩選器下。添加後工程結構圖:

live555源碼vs2010環境下編譯

         3.添加依賴頭檔案

      方法一、把該項目需要的其他庫的頭檔案拷貝到該工程的include目錄下。

      方法二、在屬性->C/C++->正常->附加包含目錄填寫需要包含的頭檔案路徑(推薦)

[cpp] view plain copy print ?

live555源碼vs2010環境下編譯
live555源碼vs2010環境下編譯
  1. ..\BasicUsageEnvironment\include  
  2. ..\groupsock\include  
  3. ..\liveMedia\include  
  4. ..\UsageEnvironment\include  
..\BasicUsageEnvironment\include
..\groupsock\include
..\liveMedia\include
..\UsageEnvironment\include
           

BasicUsageEnvironment添加後效果如下圖:

live555源碼vs2010環境下編譯

      添加完畢後,即可編譯生成對應lib。

     4. 為MediaServer添加依賴庫。

        MediaServer需要依賴上述工程生成的lib,是以需要将以上生成的lib拷貝到MediaServer工程目錄下。有種方式:

       一、使用#pragma

         在MediaServer的ive555MediaServer.cpp添加如下代碼:

[cpp] view plain copy print ?

live555源碼vs2010環境下編譯
live555源碼vs2010環境下編譯
  1. #pragma comment (lib, "Ws2_32.lib")    
  2. #pragma comment (lib, "BasicUsageEnvironment.lib")   
  3. #pragma comment (lib, "groupsock.lib")   
  4. #pragma comment (lib, "liveMedia.lib")   
  5. #pragma comment (lib, "UsageEnvironment.lib")  
#pragma comment (lib, "Ws2_32.lib") 
#pragma comment (lib, "BasicUsageEnvironment.lib")
#pragma comment (lib, "groupsock.lib")
#pragma comment (lib, "liveMedia.lib")
#pragma comment (lib, "UsageEnvironment.lib")
           

     二、項目->屬性->配置屬性->連接配接器->輸入->附加依賴項

[cpp] view plain copy print ?

live555源碼vs2010環境下編譯
live555源碼vs2010環境下編譯
  1. UsageEnvironment.lib;  
  2. liveMedia.lib;  
  3. groupsock.lib;  
  4. BasicUsageEnvironment.lib;  
  5. Ws2_32.lib  
UsageEnvironment.lib;
liveMedia.lib;
groupsock.lib;
BasicUsageEnvironment.lib;
Ws2_32.lib
           

此後即可成功編譯并生成MediaServer.exe。(這一步需要設定MediaServer 項目為啟動項目才能編譯通過)

      運作後的效果如下圖:

live555源碼vs2010環境下編譯

5. 使用VLC測試LIVE555伺服器。

    此時RTSP伺服器已經開始運作,等待來自用戶端的請求。可以使用VLC作為用戶端進行測試。

     一、準備一個錄像檔案, 如aa.264,放在MediaServer.exe同一目錄。(沒有錄像檔案,點此處)。

     二、 打開網絡串流,輸入本機ip+錄像檔案名。如rtsp://192.168.0.106/aa.264

live555源碼vs2010環境下編譯

     三、播放效果

live555源碼vs2010環境下編譯

     配置好的vc2010工程請點選此處下載下傳。

繼續閱讀