Ubuntu12.4 下 WebRTC編譯

來源:互聯網
上載者:User

標籤:

       由於項目原因,需要音視頻,所以最後選擇了開源的WebRTC(採用BDS開源協議),並且是Google支援的開源項目。在Html5方面,Google的野心可見一般,為什麼這麼說,WebRTC支援瀏覽器。目前支援WebRTC的瀏覽器有Chrome,FireFox,Opera(最新版本,老版本就不支援),就是說,瀏覽器支援視音頻,不再需要安裝外掛程式了。不過微軟IE並不支援WebRTC,倒不是技術問題,這個你懂的。對於我等屌絲來說,至少有一種途徑,可以實現非外掛程式式的瀏覽器視音頻。要知道,IE中用Active是一件很痛苦的事情,當然用Flex,安裝才行,不像瀏覽器內建的來得直接。Google在大力推廣HTML5,並以WebRTC作為視音訊標準,相信前景很好。

     WebRTC目前支援 Linux,Windows,Android,IOS,瀏覽器(目前只有Chrome,FireFox,Opera)各個平台能實現視音頻互連。Web頁面可以和手機端,手機端和PC端等都可以實現音視頻。是不是很酷!要動手編譯WebRTC,官方建議在Ubuntu下編譯。當然網上也有在Windows編譯的,但是我這是按官網的說明,進行編譯Android,所有選擇了Ubuntu編譯。如果要在Windows下編譯,請參考: http://www.chromium.org/developers/how-tos/build-instructions-windows.

    WebRTC 的官網為 http://www.webrtc.org. 要訪問,在國內估計要通過VPN,這個你懂的。

    VPN,建議還是購買一個吧,此處省略一百字。

1、環境準備:  VMware Player 安裝 Ubuntu12.04(64位),當然你也可以選擇高版本的Ununtu版本。不知道怎麼安裝Ubuntu,百度或者Google下,就可以了,並且保證Ubuntu能夠上網,且能訪問國外網站。

2、編譯Android 前需要準備的 工作(  請參考: http://www.webrtc.org/native-code/android )      

1)安裝JDK(為了後面編譯Android WebRtc):  sudo apt-get install openjdk-7-jdk (64位 java version "1.7.0_65")

2)安裝GIT(為了下載depot_tools): sudo apt-get install git (版本2.2.2)

3)下載depot_tools,擷取源碼工具: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git   

        請參考: https://sites.google.com/a/chromium.org/dev/developers/how-tos/install-depot-tools 

4)配置depot_too路徑:  export PATH=`pwd`/depot_tools:"$PATH"
                               gedit ~/.bashrc  在檔案最後添加 export PATH=`pwd`/depot_tools:"$PATH"  儲存在退出。

              

      5)安裝其他工具(為後面編譯作準備,請參考 http://www.webrtc.org/native-code/development/prerequisite-sw)

   sudo apt-get install g++(>= 4.2)
   sudo apt-get install python
   sudo apt-get install g++
   sudo apt-get install libnss3-dev
   sudo apt-get install libasound2-dev
   sudo apt-get install libpulse-dev
   sudo apt-get install libjpeg62-dev
   sudo apt-get install libxv-dev
   sudo apt-get install libgtk2.0-dev
   sudo apt-get install libexpat1-dev
   sudo apt-get install lib32asound2-dev
   sudo apt-get install ia32-libs

 3、下載原始碼

    1)建立一個目錄:  mkdir webrtc
                            cd webrtc/
    2)建立下載的設定檔:gclient config http://webrtc.googlecode.com/svn/trunk

      [email protected]:~/WebRTC$ ll
     drwxrwxr-x  3 tjb tjb 4096  1月 25 23:58 ./
     drwxr-xr-x 28 tjb tjb 4096  1月 28 10:48 ../
     -rw-rw-r--  1 tjb tjb  275  1月 25 23:58 .gclient
     -rw-rw-r--  1 tjb tjb  339  1月 25 12:18 .gclient_entries

    3)編輯設定檔.gclient :

    vi .gclient 

  solutions = [
  { "name"        : "src", 

   "url"         : "http://webrtc.googlecode.com/svn/trunk",
    "deps_file"   : "DEPS",
    "managed"     : True,
    "custom_deps" : {
    },
    "safesync_url": "",
  },
]
cache_dir = None
target_os = [‘android‘,‘unix‘,‘windows‘]   

 //"name"        : "src",  trunk 改成 src,表示原始碼要存放的目錄。

//最後添加 target_os = [‘android‘,‘unix‘,‘windows‘]  //,表示要編譯目標平台,Android,Unix, Windows,如果是要編譯IOS,就增加一個 IOS,

然後儲存退出命令: wq。

   4)同步代碼:

     gclient sync --force 

   說明: 這一步需要的時間很長,我是下載了三天,下了 11G,下載的大小,跟 target_os = [‘android‘,‘unix‘,‘windows‘]  裡面要下的目標平台有關。如果只下載android,則不要寫unix 和 windows,我是為了日後需要,所以先下載,以後再編譯。如果中間發現中斷了。你就不要不停地運行 gclient sync --force ,直到下載成功。(堅持不懈,直到成功!)

 4、編譯代碼:

   1)切換到下的目錄:      cd src
   2)讀取並執行環境命令 :source ./build/android/envsetup.sh 
   3)配置目標編譯平台:   export GYP_DEFINES="$GYP_DEFINES OS=android"
   4)下載編譯依賴的工具包(需要一些時間):  ./build/install-build-deps.sh
   5)下載編譯所需要的Build檔案(需要一些時間):   gclient runhooks --force
   6)編譯Debug版本:    ninja -C out/Debug
   7)編譯Release版本:   ninja -C out/Release

   以上步驟執行成功後:

  在 src/out 下有 Debug 和 Release 目錄,裡面具有編譯好的DEMO檔案(AppRTCDemo程式的代碼就再 src/talk/examples/android/ 目錄下)。

 [email protected]:~/WebRTC/src/out$ ll
total 20
drwxrwxr-x  5 tjb tjb 4096  1月 27 14:52 ./
drwxrwxr-x 11 tjb tjb 4096  1月 27 14:52 ../
drwxrwxr-x 28 tjb tjb 4096  1月 27 17:10 Debug/
drwxrwxr-x  5 tjb tjb 4096  1月 27 14:52 gypfiles/
drwxrwxr-x 28 tjb tjb 4096  1月 27 19:10 Release/

 

在Release 和Debug目錄下:  AppRTCDemo-debug.apk和 WebRTCDemo-debug.apk

-rw-rw-r--  1 tjb tjb   2552878  1月 27 19:09 AppRTCDemo-debug.apk
-rw-rw-r--  1 tjb tjb        7455  1月 27 19:10 AppRTCDemoTest-debug.apk

 -rw-rw-r--  1 tjb tjb   1679104  1月 27 17:04 WebRTCDemo-debug.apk

注意,AppRTCDemo 與 WebRTCDemo的區別

WebRTCDemo:區域網路內的p2p,知道對方的ip和連接埠號碼就可以視音頻,  但是效果不是很好。 

AppTRCDemo:這個時候需要架設伺服器,由伺服器來實現視音訊中轉或者實現打洞,建立通道和視音頻流。

 

下一篇會寫一下關於實現視音訊中轉或者實現打洞的伺服器。敬請關注。

 

Ubuntu12.4 下 WebRTC編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.