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 | 视频流的抽象接口,属于视频引擎的一部分 |
sdk | android或ios的SDK封装层代码。例如android的话,有Java层和JNI层,JNI层会调用公共的webRTC函数。webRTC给android平台提供的就是一个libwebrtc.aar,其中aar的java代码,大部分在这个模块 |
media | 音视频编解码的逻辑处理 |
logging | 日志记录 |
pc | peer connection的具体实现,很重要,例如peer_connection.cc sdp_offer_answer.cc |
p2p | P2P, stun, turn相关代码 |
rtc_base | 封装 Socket、线程、锁,网络,SSL等基础功能 |
rtc_tools | 网络,音视频的分析工具 |
tool_webrtc | webRTC工具类,大部分是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_rtcp | rtp/rtcp协议和网络包处理 |
remote_bitrate_estimator | 远端网络估算 |
以上是关于webRTC Android 源码目录结构分析的主要内容,如果未能解决你的问题,请参考以下文章
安卓mediasoup webrtc h264 编解码相关源码分析