WebRTC技術交流羣:234795279python
原文地址:http://blog.csdn.net/temotemo/article/details/7056581git
WebRTC編譯web
本人環境:網絡
操做系統:XP SP3svn
VS 2008工具
編譯源碼以前所需的工具測試
獲取源碼工具:ui
一、 首先須要安裝獲取源碼的工具SVN(項目代碼版本管理工具,Google也用這個)google
TortoiseSVN 1.6.12編碼
http://sourceforge.net/projects/tortoisesvn/
二、下載並安裝msysgit和Tortoisegit
msysgit:http://code.google.com/p/msysgit/downloads/list
選擇Git-1.7.4-preview20110204.exe,下載並安裝
Tortoisegit:http://code.google.com/p/tortoisegit/downloads/list
選擇適合本身系統的版本,下載並安裝(注:Tortoisegit只是一個gui,必須安裝msysgit)
Tortoisegit安裝時會找到git目錄並自動配置好。
把msysgit中bin目錄手動添加到系統環境變量PATH中,好比個人目錄是「D:/ProgramFiles/Git/bin」
3. 下載並安裝Python,建議安裝Python2.6,好比安裝在C盤
安裝將C:\Python26執行目錄自動被添加入系統環境變量PATH中。
(WebRTC是用C++寫的爲何要用到Python,由於WebRTC源碼和depot_tools裏面有不少.py的Python程序,用於配置項目,生成各類環境下的工程文件)
官方要求說明:
http://www.webrtc.org/reference/getting-started/prerequisite-sw
一、 Depot Tools
1. You'll need to have the depot tools installed:
https://sites.google.com/a/chromium.org/dev/developers/how-tos/depottools
2. You need git installed (needed for getting WebM source):
http://git-scm.com/
/*====================================================*/
好了,外部工具準備得差很少了
4. 下載並配置depot_tools
不少人都建議創建一個存放depot_tools的目錄,command進入該目錄
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
這在Linux下面應該是要這樣作的,不過在Windows系統下,我以爲這樣作更方便一點:
http://src.chromium.org/svn/trunk/tools/depot_tools 填到URL of respository去,Checkout directory能夠本身隨便指定你要存盤的路徑(建議存在不要有中文的路徑,由於一會要添加到系統的PATH的),其餘默認,而後點擊OK,自動下載,就能夠拿到depot_tools工具了。
重頭戲來了!獲取WebRTC源碼:
源碼網址爲 http://webrtc.googlecode.com/svn/trunk/
5. 爲了把源碼抓下來,能夠創建一個WebRTC的源碼目錄
好比D:\WebRTC
通常操做:(不推薦)
用DOS命令進入該目錄,而後
svn checkout http://webrtc.googlecode.com/svn/trunk/
下載完成後, WebRTC下會獲得一個默認名爲trunk的文件夾,裏頭就是WebRTC源碼了,只是源碼而已,並無編譯的相應工程文件。
而後
>gclient config https://webrtc.googlecode.com/svn/trunk (要下載1個多G的文件,網速很差的,能夠去玩一盤dota回來)
>gclient sync --force (同步項目文件)
> gclient runhooks --force (生產各類項目文件,像VS項目文件webrtc.sln文件,Linux的MakeFile文件)
等等…但是我發現不少嘗試編譯WebRTC的同窗在DOS命令進入操做就出現了各類問題了、、、
好比:Installing subversion ...
[-] XMLHTTP 80072ee2: Cannot make HTTP request (操做超時
... Failed to checkout svn automatically.
Please visit http://subversion.tigris.org to download the latestsubversion clie
nt
before continuing.(這個是網絡鏈接問題,多試幾回)
F:\WEBRTC\webrtc>gclient.bat confighttps://webrtc.googlecode.com/svn/trunk
Installing python ...(這個是配置問題)
等等使人抓狂的問題。原本咱們已經安裝好了python、SVN了,怎麼還須要Installing呢、、、並且會讓你等好久,鬱悶吧!
推薦操做:
可是我這樣作更好:
選擇WebRTC文件夾,右擊->
而後選擇Git Bash,而後就直接進入該目錄了:(以下圖)
OK了,是時候獲取WebRTC源碼來生產工程了(若是單純是爲了獲取WebRTC源碼,徹底能夠按照獲取depot_tools那樣來操做,可是咱們還要獲取完源碼後須要生產工程文件的)
第一步,拿源代碼:svn checkout http://webrtc.googlecode.com/svn/trunk/ (源文件不是很大,幾十M)
第二步,拿項目工程相關配置文件:gclient config https://webrtc.googlecode.com/svn/trunk (文件很大,1G多,要等好久哦)
第三步,與Google同步項目文件,獲取最新工程:gclient sync --force
第四步,生產各平臺的項目文件:gclient runhooks --force
注意:在第四步以前,若是在Windows平臺下,須要安裝Windows的DirectX SDK和SDK 7.1
下載地址:
SDK 7.1:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279
DirectX SDK:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812
再注意:
安裝SDK 7.1的時候,必定要注意SDK 7.1的安裝路徑,由於在WebRTC項目在配置中有規定,配置文件在.. .\trunk\src\build 名爲common.gypi 的文件
如圖:
就是說Google默認SDK 7.1安裝在C盤下,若是同窗你不想安裝在C盤下,那麼就要修改一下這個配置文件了,否則的話,執行第四步的時候就會出現各類warning問題的。
若是不想安裝SDK,能夠從這裏下所依賴的文件:
svn co http://vsfiltermod.googlecode.com/svn/trunk/src/BaseClasses,而後把文件放置在這個路徑:C:/ProgramFiles/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses
若是你順利完成以上四步的話,並且在第四步的時候沒有出現什麼問題的話,那麼恭喜你,就能夠在trunk目錄下看到Windows系統平臺下的webrtc.sln項目工程文件了。Linux的項目文件在trunk\build的install-build-deps.sh腳本。還有Mac OS和Android等等。。。
Linux平臺須要安裝的東西更多:
g++ (>= 4.2)
python (>= 2.4)
libasound2-dev
libpulse-dev
libjpeg62-dev
libxv-dev
libgtk2.0-dev
libexpat1-dev
For 32-bit builds on a 64-bit system:
lib32asound2-dev
ia32-libs
好了,本人是在VS 2008上研究的,打開webrtc.sln,而後生成解決方案,目前爲止已經解決方案裏有122個項目,音頻引擎,視頻引擎,還有不少測試代碼,視頻聊天測試,API測試,自動測試,VP8和H.264編碼測試,聲音測試,通道測試、、、等等,所有生成完成大概半個小時左右。。。、、、OK,Enjoy!
編譯時要注意,解決方案的配置:
保證有以下配置:包含文件 DirectX SDK\Include和$(WindowsSdkDir)\include
庫文件:DirectX SDK\Lib\x86 DirectX SDK\Lib SDKs\Windows\v7.1\Lib
之後有時間再和你們分享這些測試。
/==================================/
愚人愚見,歡迎拍磚,你的磚頭是個人面包。
zengxijin@qq.com
/==================================/