webRTC Android 源码目录结构分析

Posted 长江很多号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webRTC Android 源码目录结构分析相关的知识,希望对你有一定的参考价值。

本文梳理了一下webRTC android版本的源码,把各级目录都是干什么的,列到表格里:

顶层目录功能
api对上层如web, android的c++接口,例如peer_connection_interface.h data_channel_interface.h media_stream_interface.h
audio音频流的一部分抽象,属于引擎的一部分逻辑
video视频流的抽象接口,属于视频引擎的一部分
sdkandroid或ios的SDK封装层代码。例如android的话,有Java层和JNI层,JNI层会调用公共的webRTC函数。webRTC给android平台提供的就是一个libwebrtc.aar,其中aar的java代码,大部分在这个模块
media音视频编解码的逻辑处理
logging日志记录
pcpeer connection的具体实现,很重要,例如peer_connection.cc sdp_offer_answer.cc
p2pP2P, stun, turn相关代码
rtc_base封装 Socket、线程、锁,网络,SSL等基础功能
rtc_tools网络,音视频的分析工具
tool_webrtcwebRTC工具类,大部分是python脚本。对android开发来说,有个比较重要的脚本是android/build_aar.py,用于编译输出aar,提供给android 的app使用
third_party第三方库依赖,如boring ssl, libvpx,如果是android的rtc源码,还有android_sdk, android_ndk
modules一些独立模块,下面单独列出

modules子模块

modules子目录功能
audio_coding音频编解码
audio_device音频从设备采集或音频输出到设备
audio_mixer混音
audio_processing音频前处理/后处理, 如回音消除,降噪,增益
video_coding视频编解码
video_processing视频前处理/后处理
video_capture视频采集
congestion_controller流量控制
desktop_capture桌面采集
pacing码率探测与平滑处理,避免码率波动过大
rtp_rtcprtp/rtcp协议和网络包处理
remote_bitrate_estimator远端网络估算

以上是关于webRTC Android 源码目录结构分析的主要内容,如果未能解决你的问题,请参考以下文章

安卓mediasoup webrtc h264 编解码相关源码分析

安卓mediasoup webrtc h264 编解码相关源码分析

AndroidAndroid源码及系统目录结构分析

同网页的WebRTC实现与源码分析

Android端WebRTC本地音视频采集流程源码分析

安卓mediasoup webrtc h264 软编解码相关源码分析