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。
解壓後的源碼如下圖所示:
包括上述四個庫和mediaServer伺服器程式,以及其他的測試代碼。
二、建立工程
1. 打開vc2010,建立win32控制台應用程式,項目名稱為BasicUsageEnvironment,指定新解決方案的位置,解決方案名稱live555,如下圖:
2.點選确定,在此後的下一步配置中,按下圖配置:
3.添加建立項目,選擇win32控制台項目,項目名稱為UsageEnvironment。
4.點選确定和下一步後,按下圖配置
5. 重複3的步驟,添加groupsock 、liveMedia項目。
6. 添加mediaServer工程,并按如下配置:
7. 五個工程均建立完畢,添加後的解決方案結構圖如下:
三、将源檔案加入工程
1. 打開源碼目錄,将BasicUsageEnvironment、UsageEnvironment、groupsock、mediaServer、liveMedia目錄下的include目錄和cpp檔案拷貝到上述建立的對應的工程目錄下。BasicUsageEnvironment拷貝後的效果如下圖:
2、接着就是将這些檔案添加進對應項目,将每個工程下的cpp添加到源檔案篩選器下,頭檔案則添加到頭檔案篩選器下。添加後工程結構圖:
3.添加依賴頭檔案
方法一、把該項目需要的其他庫的頭檔案拷貝到該工程的include目錄下。
方法二、在屬性->C/C++->正常->附加包含目錄填寫需要包含的頭檔案路徑(推薦)
[cpp] view plain copy print ?
- ..\BasicUsageEnvironment\include
- ..\groupsock\include
- ..\liveMedia\include
- ..\UsageEnvironment\include
..\BasicUsageEnvironment\include
..\groupsock\include
..\liveMedia\include
..\UsageEnvironment\include
BasicUsageEnvironment添加後效果如下圖:
添加完畢後,即可編譯生成對應lib。
4. 為MediaServer添加依賴庫。
MediaServer需要依賴上述工程生成的lib,是以需要将以上生成的lib拷貝到MediaServer工程目錄下。有種方式:
一、使用#pragma
在MediaServer的ive555MediaServer.cpp添加如下代碼:
[cpp] view plain copy print ?
- #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")
#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 ?
- UsageEnvironment.lib;
- liveMedia.lib;
- groupsock.lib;
- BasicUsageEnvironment.lib;
- Ws2_32.lib
UsageEnvironment.lib;
liveMedia.lib;
groupsock.lib;
BasicUsageEnvironment.lib;
Ws2_32.lib
此後即可成功編譯并生成MediaServer.exe。(這一步需要設定MediaServer 項目為啟動項目才能編譯通過)
運作後的效果如下圖:
5. 使用VLC測試LIVE555伺服器。
此時RTSP伺服器已經開始運作,等待來自用戶端的請求。可以使用VLC作為用戶端進行測試。
一、準備一個錄像檔案, 如aa.264,放在MediaServer.exe同一目錄。(沒有錄像檔案,點此處)。
二、 打開網絡串流,輸入本機ip+錄像檔案名。如rtsp://192.168.0.106/aa.264
三、播放效果
配置好的vc2010工程請點選此處下載下傳。