最新 WebRTC 源码目录结构分析
前言
最近一直在研究 WebRTC源码,发现目前网上分析WebRTC源码的资料非常少。随着Google不断推进WebRTC标准,WebRTC 代码的变化非常大,很多以前的分析文章目前都与最新的代码无法对应上了。
所以,我想在分析WebRTC代码的过程中,将自己的一些分析心得写下来分享给大家,这样即是对自己的一种鞭策,同时也可以帮助那些想入门的同学。
当然,我写的分析文章不见得十分正确,如有不对的地方还请大家多多指正。
目录结构分析
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特性,原子操作,读写锁,时钟等。
最新 WebRTC 源码目录结构分析相关推荐
- Android源码目录结构分析
Android源码目录结构分析(知识笔记) 根目录结构: |-- Makefile |-- abi |-- art |-- bionic (bionic C库) |-- bootable (启动引导相 ...
- Android4.2.2源码目录结构分析
撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/40897277#t17 导读: 关于的Android目录分析,网上有很多资料,在此不 ...
- 必不可少!STL源码目录结构分析,附加源码下载链接
一.STL源码的下载 下载地址1 3种下载方式: 公众号[多栖技术控小董]回复[12754727]获取百度云下载链接. CSDN:https://download.csdn.net/download/ ...
- linux内核源码目录结构分析
https://blog.csdn.net/ultraman_hs/article/details/52931121 注:本文是学习朱老师课程整理的笔记,基于linux2.6.35.7和九鼎X210B ...
- 最新情侣历程源码目录版本源码带后台
正文: 最新搭建拟态个人主页后台管理系统源码,演示看上方封面图,有兴趣的自行去安装体验吧,其它的就没什么好介绍的了. 程序: 最新情侣源码目录版本.zip 演示地址 演示地址 图片:
- WebRTC源码研究(4)web服务器工作原理和常用协议基础
文章目录 WebRTC源码研究(4)web服务器工作原理和常用协议基础 前言 做WebRTC 开发为啥要懂服务器开发知识 1. Web 服务器简介 2. Web 服务器的类型 3. Web 服务器的工 ...
- WebRTC源码研究(4)web服务器工作原理和常用协议基础(转载)
前言 前面3篇博客分别对WebRTC框架的介绍,WebRTC源码目录,WebRTC的运行机制进行了介绍,接下来讲解一点关于服务器原理的知识.后面博客会写关于WebRTC服务器相关的开发,目前git上面 ...
- Android系统源码目录及功能介绍
Android的移植按如下流程: 1.android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来. 2.正确挂载文件系统,确保内核启动参数和 android 源代码 ...
- Android 8.0学习(32)---Android 8.0源码目录结构详解
Android 8.0源码目录结构详解 android的移植按如下流程: (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来. (2)正确挂载文件系统 ...
最新文章
- 关于用notepad++确认代码中\r\n\t空格等不显示的字符及替换
- 回归素材(part3)--机器学习基础从入门到求职
- 潘淳的苏州.NET俱乐部成立有感!附我的录音
- Hive Shell
- 【ES6(2015)】Reflect
- 西班牙人:武磊身体无恙 可以出场比赛
- js 的 protype 小总结
- python二手房课程设计_基于python爬取链家二手房信息代码示例
- Ffmpeg 视频教程 向视频中添加文字
- [Unity][2D]Sprite精灵多个多边形切割
- 接口测试[PostMan]
- php表格好看样式,怎么用css制作好看的表格?【示例】
- 在一个Activity里有多次调转网页,自定义返回上一级
- csapp之lab:shell lab
- Android P 适配
- 我的爆款算法题解是如何创作的?
- 网易传媒全新知识短视频内容消费品牌网易新闻“知识公路”正式发布
- 葛洲坝地产的“5G科技”演化:三大维度推进,不唯技术控
- STM32+W5500以太网模块
- 会场安排问题(贪心法)
热门文章
- 如何在DC机上禁用成员机的本地账号
- 新增Skin-watercolor
- CodeForces - 17E Palisection(回文自动机/Palindrome Series优化dp)
- HDU - 2874 Connections between cities(并查集+LCA)
- 7.1 pdo 宝塔面板php_CentOS 7.6下宝塔面板 PHP7.2安装sqlsrv扩展
- python xlrd读取excel-使用Python xlrd模块读取Excel格式文件的方法
- 如何产生高斯带限白噪声数据_车间噪声对我们的身体产生巨大影响,我们该如何解决?...
- Linux闲时自动抢占GPU脚本
- YOLOv5自定义数据集训练
- Python基础语法-三种函数特殊形参定义以及使用方式