当前位置: 首页 > news >正文

探讨如何在AS上构建webrtc(3)分享WebRTC-CMakeBuild轻量化工程

前言

我想很多同学想深入接触 webrtc学习的时候,好不容易下载到对应的源码之后,看见其庞大的代码仓完全不知道入手,好比想去西天取经愿意经历九九八十一难渡劫,但不懂路那是谈何去渡劫呢?那么我就在想,能不能仿照其他小型sdk-demo这样的方式,由繁从简方便学习使用呢?代码是死的人是活的,基于此目标就有了《探讨如何在AS上构建webrtc》第一第二篇文章了。

到这次第三篇文章,打算放一些成果出来分享給有需要的同学。正如在 探讨如何在AS上构建webrtc(2) 介绍,Build.gn串联了整个webrtc各个模块代码的引用关系,并初步的整理了三类gn编译函数(rtc_android_library、generate_jni、rtc_library)再经过耐心的整理,终于把webrtc的核心源代码隔离出来。

WebRTC-CMakeBuild beta版

工程gitee地址:Mr_Zzr/WebRTC-Android-CMakeBuildhttps://gitee.com/Mr_Zzr/webrtc-android-cmake.git

接下来介绍这个beta版本的轻量化工程。首先这是以Android平台为切入口,整体是一个可运行的Android Studio工程,app模块是官方demo源码+我自己编译出来的libwebrtc.aar,可单独运行。

webrtc模块就是 根据 sdk/android/Build.gn整理的源码文件,包含相关的java jni以及cc源码文件,删减了大量的单元测试文件以及性能测试文件(['_unittest.cc', '_test.cc', '_benchmark.cc', 'OWNERS'])。而且third_party部分只有 abseil-cpp,但据我了解third_party得包含以下(libevent、protobuf/protoc、libyuv、ssl、ffmpeg、openh264、openh265、dav1d、libaom_av1、aac、opus、libvpx)等一些我知道的,我不知道的第三方库,往后都需要每一项的增加支持。

工程当中内含一份简单的CMakeLists,这份CMakeLists已经include各模块根目录,但还没正式的编写好整个webrtc的编译脚本。但我们可以使用技巧来生成所有文件的符号表:运行构建app模块,Build — make project,这样AndroidStudio就会对所有当前工程的文件进行编译,这样我们就可以在app模块阅读demo代码时候,跟随调用栈跳转到webrtc模块的源码当中了。

非Android平台的同学,可以用VSCode直接打开到webrtc模块目录,也是可以利用cmake tools进行简单的make,失败也不要紧,只要能生成.o就足够用来快速定位源码调用栈了。

显然当前工程,我只能勉强的定义为beta版本。因为它还没能真正成功的构建出我想要的libwebrtc.so,但用来阅读源码、学习参考应该是够用的。希望自己能把工程推动下去,有兴趣同学欢迎fork or 推分支,或者加我个人联系方式,一起折腾一起学习webrtc一起进步。

相关文章:

  • C语言处理字符串的十个函数(附带大量实例)
  • 前端生成二维码 + 条形码
  • Python 异步编程入门:从零到上手 asyncio 协程(附实战案例)
  • Taro 面试题
  • 前端项目Axios封装Vue3详细教程(附源码)
  • 基于 Qwen2.5-14B + Elasticsearch RAG 的大数据知识库智能问答系统
  • 23种设计模式
  • 用物理信息神经网络(PINN)解决实际优化问题:全面解析与实践
  • 途游游戏25届AI算法岗内推
  • AMIS低代码构建系统,定制界面
  • VScode:运行程序停止后,频繁出现终端进程被终止
  • Kaiming Uniform 初始化:神经网络权重初始化的优雅解决方案
  • Facebook营销自动化—— Python脚本 + 代理IP实现内容高效分发
  • Vue.js 全面解析:构建现代前端应用的渐进式框架
  • Python数据分析之机器学习基础
  • PySide2是 Qt 库的 Python 绑定之一
  • 靶场(七)---靶场精做小白思考
  • 【物联网-WIFI】
  • 【学习笔记】Numpy和Tensor的区别
  • 如何选取合适的 NewRatio 值来优化 JVM 的垃圾回收策略
  • 银行网站开发技术方案/株洲seo推广
  • 博客建站程序/网搜网
  • 在线下单网站怎么做/官网seo关键词排名系统
  • 网站建设 广/拉新推广渠道
  • 集团网站建设成都/广告推广平台哪个好
  • 南通外贸建站/b2b外链代发