1. 程式人生 > >WebRTC編譯詳細介紹

WebRTC編譯詳細介紹

WebRTC技術交流群:234795279

WebRTC編譯

本人環境:

作業系統:XP SP3

VS 2008

編譯原始碼之前所需的工具

獲取原始碼工具:

1、 首先需要安裝獲取原始碼的工具SVN(專案程式碼版本管理工具,Google也用這個)

TortoiseSVN 1.6.12

2、下載並安裝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程式,用於配置專案,生成各種環境下的工程檔案)

官方要求說明:

1、 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進入該目錄

這在Linux下面應該是要這樣做的,不過在Windows系統下,我覺得這樣做更方便一點:

推薦操作:

由於之前安裝了SVN、Git等工具,所以我們可以直接這樣取depot_tools工具:

回到桌面,右擊


直接選擇SVN Checkout


將  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命令進入該目錄,然後

下載完成後, WebRTC下會得到一個預設名為trunk的資料夾,裡頭就是WebRTC原始碼了,只是原始碼而已,並沒有編譯的相應工程檔案。

然後

>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那樣來操作,但是我們還要獲取完原始碼後需要生產工程檔案的)

第三步,與Google同步專案檔案,獲取最新工程:gclient sync --force

第四步,生產各平臺的專案檔案:gclient runhooks --force

注意:在第四步之前,如果在Windows平臺下,需要安裝Windows的DirectX SDK和SDK 7.1

下載地址:

SDK 7.1:

DirectX SDK:

再注意:

安裝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



以後有時間再和大家分享這些測試。

/==================================/

愚人愚見,歡迎拍磚,你的磚頭是我的麵包。

[email protected]

/==================================/

相關推薦

WebRTC編譯詳細介紹

WebRTC技術交流群:234795279 WebRTC編譯 本人環境: 作業系統:XP SP3 VS 2008 編譯原始碼之前所需的工具 獲取原始碼工具: 1、 首先需要安裝獲取原始碼的工具SVN(專案程式碼版本管理工具,Google也用這個) Tortoi

WebRTC編譯具體介紹

media AMF developer 研究 dot mman details code 還要 WebRTC編譯具體介紹--記錄+轉載原文地址:http://blog.csdn.net/temotemo/article/details/7056581WebRTC編譯本人

《基於Nginx的中介軟體架構》學習筆記---4.nginx編譯引數詳細介紹

通過nginx -V檢視編譯時引數: 在nginx安裝目錄下,通過./configure --help,檢視對應版本ngnix編譯時支援的所有引數: Nginx編譯引數詳細介紹: --help 顯示本提示資訊 --prefix=PATH 設定安裝目錄 --sbin-path=PATH 設定

LINUX核心編譯步驟詳細介紹

linux 2.6.15.6核心配置(unfinished)注意: 不同的核心版本配置選項(或組織)可能不同, 但原理都是一樣的!另外, 關於compile in, compile as module的選擇: 根檔案系統, 根檔案系統所處的裝置, PS/2滑鼠驅動不能編譯為模組! Code maturity

Webrtc入門——基於阿里雲ubuntu 最新webrtc Android平臺編譯詳細說明

        折騰了好多天,終於將webrtc Android平臺的demo編譯出來了,發現即使完全按照webrtc官網的編譯指南,還是會碰到各種問題。而網上又沒有更全面的說明,最後是通過檢視webrtc 批處理指令碼才最終一步步解決問題。寫下這篇文章,希望對大家有幫助。         在編譯的過程

maven編譯程式碼詳細介紹

第一、main目錄下的主程式碼編寫完畢後,使用Maven進行編譯,在專案根目錄下執行命令mvn clean compile進       行專案編譯。 第二、test目錄下的測試用例編寫完畢之後就可以呼叫Maven執行測試,執行mvn clean test進行測試。 第三

RabbitMQ基礎概念詳細介紹

可用性 將不 tar connect 相互 abi 封裝 編寫 綁定 原文地址:http://www.diggerplus.org/archives/3110 引言 你是否遇到過兩個(多個)系統間需要通過定時任務來同步某些數據?你是否在為異構系統的不同進程間相互調用、通

dede_archives文章主表詳細介紹

small 選項 key 標題 varchar col cms cores ann dedecms二次開發目錄點這個:dedecms二次開發教程目錄 字段 類型 整理 屬性 Null 默認 額外 id mediumin

JS 事件綁定、事件監聽、事件委托詳細介紹

兼容性 log 查看 and == 常用 提高 監聽 live 事件綁定 要想讓 JavaScript 對用戶的操作作出響應,首先要對 DOM 元素綁定事件處理函數。所謂事件處理函數,就是處理用戶操作的函數,不同的操作對應不同的名稱。 在JavaScript中,有三種常用的

dede_addonimages圖片附加表主表詳細介紹

image 下載 復制 ati logs top 選項 span lsp dedecms二次開發目錄點這個:dedecms二次開發教程目錄 字段 類型 整理 屬性 Null 默認 額外 aid mediumint(

hibernate主鍵詳細介紹

tab merge ren net 對象 num rac 16進制 鍵值 /** * * @author liuguangyi * @content ejb3註解的API定義在javax.persistence.*包裏面。 * * 註釋說

dede_arctype欄目表主表詳細介紹

back 支持 模板 綁定 是否 index color type left dedecms二次開發目錄點這個:dedecms二次開發教程目錄 字段 類型 整理 屬性 Null 默認 額外 id smallint(

HTML中Css詳細介紹

維護 類型 html 外部 -html css樣式 樣式表 作用 tex 一、樣式表的作用  1、Css樣式表,層疊樣式表  2、類似於人類的衣服,網頁的衣服  3、作用:美化網頁  4、優勢:     1.內容與表現分離,便於維護     2.樣式豐富,頁面布局靈活   

文件上傳到tomcat服務器 commons-fileupload的詳細介紹與使用

部分 中文字符 form 引用 編碼 path -type dex item 三個類:DiskFileUpload、FileItem和FileUploadException。這三個類全部位於org.apache.commons.fileupload包中。 首先需要說明一下f

氚雲CRM產品的詳細介紹

銷售管理 銷售人員 聯系人 產品 管理者 1 產品價值1.1 核心優勢 1.2 銷售管理者的煩惱 1.3 產品價值-解決銷售人員的煩惱 1.4 氚雲CRM幫助企業提高工作效率、促進團隊業績順利達成從客戶開發、外勤,聯系人的維護,客戶的跟進商機的有效推進到合同的簽定成交以及發票、回款等銷售生

rabbitMQ概念詳細介紹

end 使用 hosts 性能 benefit 路由 相關 大型網站 進行 1. 歷史 RabbitMQ是一個由erlang開發的AMQP(Advanced Message Queue )的開源實現。AMQP 的出現其實也是應了廣大人民群眾的需求,雖然在同步消息通訊

IntelliJ IDEA 編譯方式介紹

目錄 .cn mod block 添加 -i 特殊 可能 tps 原文:https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/newMaster/make-introduce.md 編譯方式介紹 相比較於 Eclipse

A10 負載均衡模擬器下載安裝及license免費激活詳細介紹

負載均衡 f5 a10 模擬器下載 A10 Networks官網免費提供Vthunder模擬器下載,並免費提供30天、5Mbps吞吐全功能模塊的License;獲取方法如下:1、首先,登錄A10 Networks官網,提交Vthunder模擬下載申請,申請地址:https://glm.a10n

Linux目錄結構詳細介紹(一)

linux 目錄結構 頂點 / ,其它所有目錄都在根下根下面的目錄及目錄裏的子目錄是一個有層次的倒掛樹狀結構目錄描述/處於linux系統樹形結構的最頂端,它是linux文件系統的入口,所有的目錄、文件、設備都在/之下。/bin/bin是Binary的縮寫,存放著linux系統命令。/boot/包括內核

詳細介紹Java虛擬機(JVM)

委托 article log flow 包括 源代碼 filename method 獨立 1. JVM生命周期 啟動。啟動一個Java程序時,一個JVM實例就產生了,任何一個擁有public static void main(String[] args)函數的class