libwebrtc & libmediasoupclient編譯


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

  由於網速限制,實際編譯過程是在遠程vps上編譯滴。

系統環境

  Ubuntu 18.04系統的虛擬主機。

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

編譯webrtc

安裝依賴工具

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

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    # 使配置生效   

  這樣便可使用相關命令了。

下載源代碼

  創建一個保存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命令之后,還需執行如下命令:

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

Building

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

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

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

Release模式

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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM