Skip to content
On this page

WebRTC

源码目录结构

apiWebRTC接口层, 浏览器都是通过该接口调用WebRTC
call数据流的管理层, Call代表同一个端点的所有数据的流入流出
video与视频相关的逻辑
audio与音频想关的逻辑
common_audio音频算法相关
common_video视频算法相关
media与多媒体相关的逻辑处理, 如编解码的逻辑处理
logging日志相关
module最重要的目录, 子模块
pcPeer Connection, 连接相关的逻辑层
p2p端对端相关代码, stun, turn
rtc_base基础代码, 如线程, 锁相关的统一接口代码
rtc_tool音视频分析相关的工具代码
tool_webrtcWebRTC测试相关的工具代码, 如网络模拟器
system_wrappers与具体操作系统相关的代码, 如CPU特性, 原子操作等
stats存放各种数据统计相关的类
sdk存放Android和IOS层代码, 如视频的采集, 渲染等

Modules目录

audio_coding音频编解码相关代码
audio_device音频采集与音频播放相关代码
audio_mixer混音相关代码
audio_processing音频前后处理的相关代码
bitrate_controller码率控制相关代码
congestion_controller流控相关代码
desktop_capture桌面采集相关代码
pacing码率探测及平滑处理相关代码
remote_bitrate_estimator远端码率估算相关的代码
rtp_rtcprtp/rtcp协议相关的代码
video_capture视频采集相关的代码
video_coding视频编解码相关的代码
video_processing视频前后处理相关的代码

运行机制

轨与流:

Track ( 轨 )

MediaStream ( 媒体流 )

重要类:

MediaStream

RTCPeerConnection

RTCDataChannel

enumerateDevices

js
let ePromise = navigator.mediaDevices.enumerateDevices()

MediaDevicesInfo

属性说明
deviceID设备ID
label设备的名称
kind设备的种类
groupID两个设备groupID相同, 说明是同一个物理设备

邮箱:g598670138@163.com 个人微信号:woshigaojianghua