WebRTC 源碼拉取&編譯

WebRTC 源碼拉取

參考 webrtc 官方文檔

  • 可選直接在 Uuntu 系統(tǒng)上拉取源碼
  • 可選 Docker Ubuntu 容器中拉取源碼

編譯參數(shù)

  1. 進入 webrtc/src 目錄下
  2. 配置基本參數(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 架構自動推斷。

  3. 列舉所有參數(shù)
    使用 gn help args 指令,可以查看 args 指令的詳細信息。以下信息可以查看,編譯 android arm64 平臺的完整參數(shù)配置。包含自己指定的和 webrtc 編譯系統(tǒng)自動推斷。
    # 列舉所有的參數(shù)
    gn args out/Android/arm64 --list
    
  4. 修改參數(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ù),不編譯實例項目和單元測試。

編譯

  1. 進入 webrtc/src 目錄
  2. 使用 ninja 編譯 android 平臺 webrtc.
    ninja -C out/Android/arm64 -j8
    

    編譯時間較長,需要耐心等待

  3. 編譯 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 文件即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容