WebRTC 源码拉取&编译

WebRTC 源码拉取

参考 webrtc 官方文档

  • 可选直接在 Uuntu 系统上拉取源码
  • 可选 Docker Ubuntu 容器中拉取源码

编译参数

  1. 进入 webrtc/src 目录下
  2. 配置基本参数,指定目标系统和目标系统处理器架构和其他参数。以下示例可以配置,编译后就可以正常编译 android 平台 webrtc 的实例 apk, 动态库和 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 本身有大量的参数可以配置,如果没有设置,则自动由平台 和 cpu 架构自动推断。

  3. 列举所有参数
    使用 gn help args 指令,可以查看 args 指令的详细信息。以下信息可以查看,编译 android arm64 平台的完整参数配置。包含自己指定的和 webrtc 编译系统自动推断。
    # 列举所有的参数
    gn args out/Android/arm64 --list
    
  4. 修改参数
    根据第 3 步获取到的参数列表,提取需要修改的字段,追加到第 2 步的指令 --args 参数中,重新执行即可,下面以 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 参数,不编译实例项目和单元测试。

编译

  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 可能会出现第三方许可证不存在问题,正确编译出 src/libwebrtc.aar 文件即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容