webRTC源码结构简单分析(一)

webRTC是什么?。 这里我已经下载并编译好了,然后梳理一下结构。仅作为学习笔记,如有错误,欢迎指出。

如果你还没有下载或编译,请参看,链接1链接2.

1、首先webRTC下载之后,是src文件,然后这个文件中有很多文件夹及其他,这里截取部分,如下:

  

2、其中example文件夹中,是webRTC给出的各种应用实例的demo。

目前作为入门,我是先研究peerconnection的client和server 项目。

3、out文件夹(从example文件夹向下数4个),是编译生成之后的库文件,共4个版本。

4、以release_32 为例,

obj :里面有各种obj文件,和 lib文件。用于包含库目录。内容较多,关联比较复杂。

all.sh,可以用VS2017(这是我编译时用的编译器)打开整个解决方案,打开之后,部分截图如下:

然后就可以调试运行,跟踪,看peerconnection的client和server是如何工作的。

5、运行client和server

先运行server,使服务端处于监听状态,然后启动client端,点击连接,即可连接到服务端。之后可以创建多个client,那么服务端可以监听到多个client。

开启client,点击 connect。

连接成功1个client

 连接成功2个client,每个客户端都有另一个客户端的信息,点击名称,即可获取摄像头。如果两个客户端在两台局域网电脑上时,能实现1对1,视频是平信。

 连接3个client, 每个client上,都有另外两个客户端信息。

断开1个client 

6、其他文件

(api)文件夹里,主要包含了webrtc的虚基类接口

(audio)文件夹里,audio工程,包含音频传输接收发送的功能

(call)文件夹里,rtp的接收发送功能

(common_audio)文件夹里,音频算法处理功能

(common_video)文件夹里,视频帧处理功能,yuv处理,h264解析

(modules):

  • audio_coding音频编码器
  • audio_device 音频采集
  • audio_mixer 音频混音
  • audio_processing 音频处理,回声消除,语音增强,端点检测
  • bitrate_controller 码率控制
  • congestion_controller 拥塞控制
  • desktop_capture 桌面采集
  • remote_bitrate_estimator 远端码率估计
  • rtp_rtcp rtp/rtcp协议处理
  • third_party fft变换 g711编解码 g722编解码
  • video_capture 视频采集
  • video_coding 视频编码
  • video_process 视频降噪处理

(p2p) rtc_p2p工程-p2p传输接收与发送

(example) 文件夹有各个平台的demo,都是对sdk 里面接口的实例

(sdk)sdk 文件夹有Android的接口,应该还有iso。里面有 apprtc,可以实现安卓和web 的互通

(PC) peer_connection 工程,webrtc的控制核心

(video) video工程 视频的传输与发送

(third_party) 很多第三方开源库

(stats) rtc_stats工程 状态信息

(rtc_tools) rtc的自定义命令行工具

参考链接:https://blog.csdn.net/tong5956/article/details/105067219

猜你喜欢

转载自blog.csdn.net/qq_34732729/article/details/105805868