libwebrtc & libmediasoupclient編譯

  本文簡單介紹在Ubuntu下libwebrtc的編譯過程。python

  因爲網速限制,實際編譯過程是在遠程vps上編譯滴。git

系統環境

  Ubuntu 18.04系統的虛擬主機。web

root@vultr:~# pwd
/root root@vultr:~# cat /etc/issue Ubuntu 18.04.2 LTS \n \l

編譯webrtc

安裝依賴工具

  獲取webrtc源代碼須要使用Chromium depot tools。vim

root@vultr:~# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git # 下載工具
export PATH=$PATH:/path-to/depot_tools                                 # 添加到環境變量
# 臨時添加,如
root@vultr:~# export PATH
=$PATH:/root/depot_tools 
# 添加到/etc/profile中,
root@vultr:~# vim /etc/profile
...  
export PATH=$PATH:/root/depot_tools  # 在文件最後一行添加,wq!退出
root@vultr:~# source /etc/profile    # 使配置生效   

  這樣即可使用相關命令了。c#

下載源代碼

  建立一個保存webrtc源代碼的目錄webrtc-checkout。工具

root@vultr:~# mkdir webrtc-checkout root@vultr:~# cd webrtc-checkout root@vultr:~/webrtc-checkout# apt install python -y        # 須要python 支持 root@vultr:~/webrtc-checkout# fetch --nohooks webrtc # 獲取和同步代碼,下載量很大,約12G root@vultr:~/webrtc-checkout# gclient sync &

  Linux (Ubuntu/Debian)系統,在執行完gclient sync命令以後,還需執行以下命令:fetch

root@vultr:~/webrtc-checkout# cd src root@vultr:~/webrtc-checkout/src# ./build/install-build-deps.sh

Building

  兩種編譯方式,具體解釋可查看Buildingui

Debug模式:(本文采用這種模式)google

root@vultr:~/webrtc-checkout/src# gn gen out/Default Done. Made 990 targets from 201 files in 644ms

Release模式spa

gn gen out/Default --args='is_debug=false'

清理目錄

gn clean out/Default

編譯

  大體須要編譯一個小時左右。

root@vultr:~/webrtc-checkout/src# ninja -C out/Default

   這樣就編譯出libwebrtc.a文件,編譯結束。

root@vultr:~# du -sh * 170M depot_tools 17G webrtc-checkout

編譯mediasoupclient

Requirements

POSIX or Windows based operating system cmake >= 3.5
gcc and g++ >= 4.9 or clang (with C++11 support)

  若是是CentOS7系統的話,上面兩項都不知足,版本較老,須要先升級,所以不太推薦在CentOS7系統上編譯,比較繁瑣,Ubuntu較方便。

編譯

  mediasoupclient依賴libwebrtc,具體編譯過程可參考libmediasoupclient v3 Installation

  僅一點關於編譯需稍微指出:

cmake . -Bbuild \ -DLIBWEBRTC_INCLUDE_PATH:PATH=PATH_TO_LIBWEBRTC_SOURCES \ # src源代碼目錄 -DLIBWEBRTC_BINARY_PATH:PATH=PATH_TO_LIBWEBRTC_BINARY         # 編譯出libwebrtc.a目錄

  此處的環境設置以下:

cmake . -Bbuild \ -DLIBWEBRTC_INCLUDE_PATH:PATH=root/webrtc-checkout/src \ -DLIBWEBRTC_BINARY_PATH:PATH=/root/webrtc-checkout/src/out/Default/obj

  其它地方應該沒什麼大問題。

參考

  https://webrtc.org/native-code/development/

  https://mediasoup.org/documentation/v3/libmediasoupclient/installation/

相關文章
相關標籤/搜索