当把代码下载完,可以通过vs2017编译之后,特别兴奋,但是,当打开工程的时候,懵了。。。。。看下图

再看工程项目

此刻的心情,,,,,低落到无语。

这位大神介绍了一下源码结构

https://blog.csdn.net/garrylea/article/details/77899109

先决定从

rtc_base

存放了一些基础代码。如线程,事件,socket等相关的代码 这个文件夹开始研究和学习。

目录结构分析
api

WebRTC 接口层。包括 DataChannel, MediaStream, SDP相关的接口。各浏览器都是通过该接口层调用的 WebRTC。
call

存放的是 WebRTC “呼叫(Call)” 相关逻辑层的代码。
audio

存放音频网络逻辑层相关的代码。音频数据逻辑上的发送,接收等代码。
video

存放视频逻辑层及视频引擎层的相关的代码。视频数据逻辑上的发送,接收等代码。

视频引擎层就是指如何控制视频采集,处理和编解码操作的逻辑。

voice_engine

存放音频引擎代码。主要是控制音频的采集,处理,编解码的操作。

这个目录后面可能也会被拿掉。

sdk

存放了 Android 和 IOS 层代码。如视频的采集,渲染代码都在这里。
pc

存放一些业务逻辑层的代码。如 channel, session等。
common_audio

存放一些音频的基本算法。包括环形队列,博利叶算法,滤波器等。
common_video

存放了视频算法相关的常用工具,如libyuv, sps/pps分析器,I420缓冲器等。
modules

这个目录是 WebRTC 代码中最重要的一个目录。里面包括了音视频的采集,处理,编解码器,混音等。

视频的渲染部分已经从这里删除了。因为没有浏览器需要用到这里的渲染代码。如果使用Native API 做二次开发,需要自己写视频渲染相关的代码。

modules 目录下还包括以下几个子目录:

audio_coding : 音频编解码相关代码。

audio_conference_mixer : 会议混音相关代码。

audio_device : 音频采集与音频播放相关代码。

audio_mixer : 混音相关代码,这部分是后加的。

audio_processing : 音频前后处理的相关代码。

bitrate_controller : 码率控制相关代码。

congestion_controller : 流控相关的代码。

desktop_capture : 桌面采集相关的代码。

media_file : 播放媒体文件相关的代码。

pacing : 码率探测相关的代码。

remote_bitrate_estimator : 远端码率估算相关的代码。

rtp_rtcp : rtp/rtcp协议相关代码。

video_capture : 视频采集相关的代码。

video_coding : 视频编解码相关的代码。

video_processing : 视频前后处理相关的代码。
media

存放媒体相关的代码。
p2p

p2p相关的代码。
rtc_base

存放了一些基础代码。如线程,事件,socket等相关的代码。
rtc_tools

存放了一些工具代码。如视频帧比较,I420转RGB,视频帧分析。
stats

存放各种数据统计相关的类。
libjingle

网络库。
system_wrapper

与操作系统相关的代码,如 CPU特性,原子操作,读写锁,时钟等。

************************************20190618 晚**************

找到一个开源的C++项目介绍
https://abseil.io/about/

都是从谷歌的开源项目中提炼出来的,我准备把他翻译成中文,另外自己也可以学习一下。

github地址:

https://github.com/abseil/abseil-cpp

Webrtc之源码结构相关推荐

  1. Linux内核移植之一:内核源码结构与Makefile分析

    内容来自 韦东山<嵌入式Linux应用开发完全手册> 一.内核介绍 1.版本及其特点 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如下面几行它们构成了Linu ...

  2. 【Android 系统开发】Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

  3. 技术宝典 | WebRTC ADM 源码流程分析

    导读: 本文主要基于 WebRTC release-72 源码及云信音视频团队积累的相关经验而成,主要分析以下问题: ADM(Audio Device Manager)的架构如何?ADM(Audio ...

  4. 【华为云技术分享】Linux内核源码结构(1)

    在上一期中,我们介绍了Linux内核发展的历史,也介绍了与其相关的UNIX和GNU的相关知识.从这一期开始,我们将介绍Linux内核的源码结构.我们将先根据Linux源码的目录结构进行分析,到本文章发 ...

  5. MyBatis源码解读之源码结构

    2019独角兽企业重金招聘Python工程师标准>>> 目的 文章主要了解MyBatis源码结构,每个包的具体功能.如何去学习MyBatis源码. MyBatis源码结构导图 查看大 ...

  6. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码

    子曰:"富而可求也,虽执鞭之士,吾亦为之.如不可求,从吾所好." <论语>:述而篇 百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核文件 ...

  7. WebRTC ADM 源码流程分析

    导读: 本文主要基于 WebRTC release-72 源码及云信音视频团队积累的相关经验而成,主要分析以下问题: ADM(Audio Device Manager)的架构如何?ADM(Audio ...

  8. OpenSSL之EVP(一)——数据结构及源码结构介绍

    EVP简介 Openssl EVP提供了丰富的密码学中的各种函数. Openssl 中实现了各种对称算法.摘要算法以及签名/验签算法. EVP 函数将这些具体的算法进行了封装. EVP 主要封装了如下 ...

  9. pnpm 源码结构及调试指南

    前言 随着前段时间尤大在 vue3 以及 vite 仓库中切换包管理为 pnpm 的 pr 成功 merge,以及 vue 生态中的一些项目例如 VueUse 也切换使用 pnpm,宣告着 vue 生 ...

最新文章

  1. vex机器人比赛 一队人数_VEX世锦赛中国区总决赛在渝闭幕 重庆晚报记者带你了解VEX机器人的那些事...
  2. iview在vue-cli3如何按需加载
  3. mysql字符集说明
  4. [vue] 你知道style加scoped属性的用途和原理吗?
  5. 菲尔茨奖得主丘成桐在清华设立数学英才班,比肩清华姚班
  6. 用idea建立jsp项目_用idea创建maven项目,配置tomcat详解
  7. Java教程:Java JDK下载与安装教程
  8. 集合类型及其操作(复习)
  9. 诡异的json包含bom头
  10. 2020-12-16子类对象指针强转成父类对象指针,父类对象指针调用子类函数问题(待整理)
  11. 云计算时代的数据库研究
  12. 真正的焦虑感来自对比
  13. javascript视频教程下载
  14. SpringCloud第一章 Euraka服务注册与发现组件
  15. 英尺英寸和厘米的换算_英尺米换算(英尺英寸与厘米换算器)
  16. [渝粤教育] 中国地质大学 计算机会计理论与实务 复习题
  17. 【Mongodb】常用的一些功能
  18. WinEdit 的algorithm2e包自定义一个带竖线的模块代码
  19. QGIS编译---QGIS3.22.4 + Qt5.15.3 + VS2019 ---64位版本
  20. 采样率与频率之间的关系

热门文章

  1. 2014年值得关注的10个开源项目(上)
  2. CentOS6.0升级内核为6.2
  3. 树莓派3代b型静态IP设置,和ssh的wlan配置
  4. 【机器学习】隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现
  5. nvl2可以套公式吗 oracle_包装设计也可以套公式?8个公式带你玩转包装创意表现形式...
  6. linux buffer cache 过高_工作中经常用的linux命令 free
  7. swift 笔记 (十三) —— 继承
  8. python数据类型、if判断语句
  9. Centos7安装netcat运算sparkStreaming进行单词统计
  10. pycharm 虚拟环境virtualenv迁移到别的机器 无法读取包的问题