WebRTC 源碼拉取
參考 webrtc 官方文檔
- 可選直接在 Uuntu 系統(tǒng)上拉取源碼
- 可選 Docker Ubuntu 容器中拉取源碼
編譯參數(shù)
- 進入
webrtc/src目錄下 - 配置基本參數(shù),指定目標系統(tǒng)和目標系統(tǒng)處理器架構和其他參數(shù)。以下示例可以配置,編譯后就可以正常編譯 android 平臺 webrtc 的實例 apk, 動態(tài)庫和
libwebrtc.jar。gn gen out/Android/arm64 --args='target_os="android" target_cpu="arm64" is_clang=true rtc_use_h264=true rtc_use_h265=true is_component_build=false use_rtti=true use_clang_modules=false use_sysroot=false'webrtc 本身有大量的參數(shù)可以配置,如果沒有設置,則自動由平臺 和 cpu 架構自動推斷。
- 列舉所有參數(shù)
使用gn help args指令,可以查看args指令的詳細信息。以下信息可以查看,編譯 android arm64 平臺的完整參數(shù)配置。包含自己指定的和 webrtc 編譯系統(tǒng)自動推斷。# 列舉所有的參數(shù) gn args out/Android/arm64 --list - 修改參數(shù)
根據(jù)第 3 步獲取到的參數(shù)列表,提取需要修改的字段,追加到第 2 步的指令 --args 參數(shù)中,重新執(zhí)行即可,下面以android_ndk_api_level=21為例:gn gen out/Android/arm64 --args='target_os="android" target_cpu="arm64" is_debug=true is_clang=true rtc_use_h264=true rtc_use_h265=true is_component_build=false use_rtti=true use_clang_modules=false use_sysroot=false android_ndk_api_level=21'加快編譯速度,可以追加
rtc_build_examples=false rtc_include_tests=false參數(shù),不編譯實例項目和單元測試。
編譯
- 進入
webrtc/src目錄 - 使用
ninja編譯 android 平臺 webrtc.ninja -C out/Android/arm64 -j8編譯時間較長,需要耐心等待
- 編譯 android aar 庫包
./webrtc-source/src/tools_webrtc/android/build_aar.py --build-dir out/Android/arm64 --arch arm64-v8a --extra-gn-args="is_debug=false is_clang=true rtc_use_h264=true rtc_use_h265=true is_component_build=false use_rtti=true use_clang_modules=false use_sysroot=false"編譯 aar 可能會出現(xiàn)第三方許可證不存在問題,正確編譯出
src/libwebrtc.aar文件即可。