WebRTC 学习笔记
目录
0. WebRTC 简明教程
教程概览
这个教程适合谁
前置知识
教程特色
学完能收获什么
给不同读者的建议
学习建议
学习路线图
总体规划
建议节奏
学习优先级
每日学习节奏
每周完成标准
技术栈全景图
参考资源
遇到困难怎么办
第一周:WebRTC 基础入门
学习目标
每日计划
常见卡点
详细参考
第二周:传输协议深入
学习目标
每日计划
常见卡点
详细参考
第三周:音视频处理
学习目标
每日计划
常见卡点
详细参考
第四周:QoS 与项目实战
学习目标
每日计划
常见卡点
详细参考
进阶方向
附录:工具、项目与扩展阅读
开源项目速查
常用工具速查
关联技术
核心 RFC 速查
1. WebRTC 基础
WebRTC 概论
WebRTC 简介
WebRTC 应用模型
WebRTC 呼叫建立流程
WebRTC 应用的核心功能
相关章节
参考资料
Web Browser for RTC
简介
Web browser RTC functionality
参考资料
WebRTC 标准,协议和规范
相关的标准和协议
相关的扩展协议
新标准和规范
WebRTC API
概论
典型流程
示例
代码中的主要流程
参考资料
WebRTC Elements
Audio Element
Video Element
Canvas
Web Worker
WebRTC Entities
概论
Reference
WebRTC 呼叫流程
概论
WebRTC 的信令,媒体以及数据通道
会话创建过程(JSEP) 与两个最重要的状态机
1. 我们要写一个上面提到的信令服务器, 同时也作为一个网页服务器
2. 写一个支持视频和文本聊天的网页
3. 编写视频聊天的客户端代码,主要就是创建 PeerConnection, 交换 SDP, 通过ICE检查连通性后进行通信
4. 启动并运行视频聊天程序
参考资料
WebRTC API 之 Media Capture
Overview
enumerateDevices
GUM-getUserMedia
FAQ
参考资料
WebRTC API 之 Screen Capture
简介
术语
接口
getDisplayMedia 实例
参考资料
WebRTC API 之 Media Record
Overview
第一步:创建一个供演示的 HTML 文件
第二步:处理这四个按键的的 click 事件
参考资料
WebRTC extension
Overview
Reference
WebRTC 客户端能力
概论
Reference
WebRTC 的信令
Overview
信令协议的传输和格式
WebIDL
SDP
SDP 扩展
Signal Server
参考资料
WebRTC SDP
overview
An Offer/Answer Model with the SDP
RTP Profile for Audio and Video Conferences with Minimal Control
SDP for ICE and DTLS
SDP extension
SDP 的两个 Plan
Negotiating Media Multiplexing Using SDP
SDP Grouping Framework
Source-Specific Media Attributes in SDP
SDP examples
参见资料
WebRTC stats
Overview
传输层 transport layer
荷载层 payload layer
重要的是搞清楚状况
WebRTC statistics API
全部的度量指标
度量驱动改进
参考资料
视频聊天实例
概述
总体设计
P2P 视频聊天实现
P2P vs SFU vs MCU
关键技术点
移动端适配
部署与测试
参考文献
White board by WebRTC
Overview
Example
Reference
2. WebRTC 传输
WebRTC 传输概论
概论
协议栈详解
信令协商
Signal State Machine 信令状态机
ICE Connection State Machine 互通连接状态机
术语
传输控制
WebRTC 传输的关键特性
参考文献
WebSocket
概述
WebSocket 协议详解 (RFC 6455)
WebSocket 在 WebRTC 信令中的应用
WebSocket vs 其他信令方案
服务端实现
客户端实现
WebSocket 安全
WebSocket 扩展
性能优化
常见问题与排查
参考文献
STUN
概述
STUN 相关规范
STUN 消息结构
STUN 属性
NAT 类型与 STUN 行为
STUN 在 WebRTC ICE 中的应用
STUN 与 TURN 的比较
STUN 服务器部署
安全机制
代码示例
参考资料
TURN
Overview
Terminology
Basic flow
Allocation
Send Mechanism
Channel
TURN specs
STUN specs
Supported ICE and related specs
client-to-TURN-server protocols
Supported relay protocols
Interactive Connectivity Establishment
Overview
NAT
ICE procedure
ICE candidate
TCP Candidates with Interactive Connectivity Establishment (ICE)
Framing RTP and RTCP Packets over TCP
Reference
QUIC 协议
概述
QUIC 与 TCP 对比
QUIC 核心特性
WebTransport over QUIC
QUIC 用于媒体传输
HTTP/3 与 QUIC
QUIC 实现
QUIC 在 WebRTC 生态中的现状
协议文档结构
参考资料
RTMP 协议
RTMP Overview
RTMP 连接三部走
RTMP 包结构
Reference
TLS 协议
概述
TLS 1.2 握手协议
TLS 1.3 改进
DTLS — WebRTC 的安全基石
证书管理
WebRTC 中的密码套件
SRTP 密钥推导详解
mTLS (双向 TLS)
常见 TLS/DTLS 问题
Alert 协议
参考资料
DTLS 协议
Overview
术语
Packet structure 包结构
基本流程
Example
Troubleshooting
Reference
SCTP 协议
SCTP Overview
术语
基于消息的多流协议
Why
How
Example
Reference
SRTP 协议
概述
Why
How
SRTP 的信令协商
libsrtp
Reference
WHIP 协议
概述
WHIP 协议详解
WHEP 协议
工作流程
SDP 协商细节
服务端支持
客户端实现
直播场景应用
错误处理与最佳实践
参考文献
BFCP 协议
Overview
Packet Format
典型交互流程
在 WebRTC/SIP 中的应用
参考资料
WebRTC RTP Usage
Overview
RTP 解决的问题
RTP
RTCP
1. RTP 协议的度量要点
4. 实例
WebRTC RTCP Usage
RTCP Sender Report
RTCP Receiver Report
RTCP SDES
RTCP Bye
RTCP App
RTCP XR
Overview
Reference
WebRTC Data Channel
简介
SCTP
Data Channel Establishment Protocol (DCEP)
SDP
参考资料
WebRTC RTP Header extension
Overview
Absolute Send Time
Absolute Capture Time
Transport-Wide Congestion Control
RTP Keepalive
概述
NAT 映射超时问题
Keepalive 机制详解 (RFC 6263)
Keepalive 间隔
WebRTC 中的实现
DTLS Keepalive
多路复用场景
常见问题
Wireshark 抓包分析
libwebrtc 中的实现
最佳实践
参考文献
WebRTC 传输的多路复用
简介
1. 区分 STUN, DTLS 和 RTP 包
2. 区分 RTP 和 RTCP
3. 区分不同的媒体流
参考资料
Network Device Interface
What
How
Why
Reference
WebRTC Bundle
What
How
Why
简介
1. 区分 STUN, DTLS 和 RTP 包
2. 区分 RTP 和 RTCP
3. 区分不同的媒体流
4. 关联 RTCP 与 RTP 数据包到相应的 media session(m-line)
参考资料
3. 音频技术
WebRTC 媒体概论
Overview
Protocols
Audio Basic
Audio 声音是什么
Glossaries
Audio 频宽
Audio 语音质量
信令协议
媒体传输协议
Codec
语音应用程序 Application
Functions
主要指标
FAQ
WebRTC 音频
Audio Basic
Audio Process pipeline
Audio Level
Web Audio API
Audio QoS
Acoustic Echo Canceller
Voice Activity Detector
Automatic Gain Control
Automatic Noise Suppression
Jitter Buffer
Audio worklet
Audio Quality
Audio Analysis
Audio Opus Codec
Overview
音频采集 (Audio Capture)
音频处理模块 (Audio Processing Module, APM)
音频编码 (Audio Encoding)
音频传输 (Audio Transport)
音频解码与播放 (Audio Decoding & Playout)
PLC (Packet Loss Concealment)
音频路由与混音 (Audio Routing & Mixing)
JavaScript API
音频统计监控
Reference
语音编解码总览
概述
编解码器分类
编码流程详解
WebRTC 中的编解码器
质量评估
小结
G.711 — PSTN 的基石
概述
压扩法则
RTP 打包
G.711 附录
在 WebRTC 中的使用
小结
G.722 — 宽带语音先驱
概述
子带编码原理
ADPCM 编码细节
RTP 打包
G.722 vs G.711 vs Opus
在 WebRTC 中的使用
G.722.1 和 G.722.2
小结
G.729 — 低码率语音之王
概述
CS-ACELP 编码原理
G.729 变体
RTP 打包
G.729 vs Opus 低码率对比
在 WebRTC 中的位置
小结
AMR/AMR-WB — 移动通信编码
概述
AMR-NB 码率模式
自适应码率切换
AMR-WB 编码原理
AMR-WB+
RTP 打包
与 Opus 的对比
在 WebRTC/VoIP 中的位置
小结
AAC — 音乐场景的王者
概述
AAC 编码原理
AAC Profile 家族
AAC-ELD:实时通信利器
AAC vs Opus
AAC 在实时通信中的应用
小结
EVS — VoLTE 的核心编码
概述
带宽与码率
编码架构
EVS vs AMR-WB
JBM(Jitter Buffer Management)
EVS vs Opus
部署现状
小结
Audio Opus Codec
概述
互联网音频编码需求
编解码器架构
SILK 层详解
CELT 层详解
Hybrid 模式
内部分帧与 TOC
控制参数详解
DRED:深度冗余(Opus 1.5+)
SDP 协商参数
实际例子
常见问题与调优
术语表
参考资料
编解码器横评
概述
全景对比表
质量对比(MOS 评分)
延迟对比
抗丢包能力
场景选择指南
一句话总结
Audio Process pipeline
概述
音频采集
音频预处理 (APM)
音频编码与解码
网络传输
音频后处理与播放
参考资料
Acoustic Echo Canceller
概述
延迟估计 (Delay Estimation)
双讲检测 (Double-Talk Detection)
WebRTC AEC 实现
AEC 处理流水线
Glossary
Methods
常见问题与调试
性能指标
参考资料
Automatic Gain Control
概述
原理
AGC 算法分类
WebRTC AGC 实现详解
AGC 与其他模块的交互
动态范围压缩
调试与调优
Glossary
Key points
WebRTC Implementation
参考资料
Automatic Noise Suppression
概述
噪声的分类
Background noise removal
噪声抑制算法
Single Talk and Multiple talker
WebRTC ANS 实现
传统方法 vs 深度学习方法对比
WebRTC 中的配置
性能指标
噪声估计算法
瞬态噪声抑制
参考资料
Voice Activity Detector
Overview
VAD 算法分类
WebRTC VAD 实现
VAD 在编解码器中的应用
VAD 的应用场景
VAD 定义与模型
VAD 算法流程
性能指标
JavaScript API 配置
常见问题
Reference
Audio Level
概述
度量单位
Audio Level
Metrics
ASA
ASN
示例代码
FAQ
Reference
Web Audio API
API
FAQ
Reference
Audio worklet
Overview
Terms
Mechanism
Example
Design Patterns
Reference
Audio Analysis
概述
时域分析
分帧
加窗处理
频域分析
音频质量指标
Python 实践
WebRTC 中的应用
小结
参考文献
Audio Quality
概述
Standard
MOS
Audio distortion
Tools
Reference
Audio QoS
Overview
3A
差错检测与恢复
4. 视频技术
Video Basic
概述
颜色
颜色模型
数字图像
视频编码的问题
视频压缩
视频帧 Video Frame
视频压缩 Video compress
H.264
图像识别
Tools
Reference
WebRTC 视频
Video Basic
视频编码
video adaptation
video quality
Video Pipeline
Video Process
Video Lip Sync
YUV 图像格式
H.264 编码
视频编码 AV1
概述
视频基础知识
视频编解码器
WebRTC 视频 Pipeline
视频采集
视频文件格式
WebRTC 视频相关 API
参考文献
YUV 图像格式
图像格式
YUV 图像的存储格式
RGB 与 YUV 格式的转换
代码示例
参考资料
视频编码
概述
视频帧 Video Frame
视频压缩 Video compress
H.264
Reference
H.264 编码
简介
H.264/AVC 应用的主要技术
术语和缩写
H264 encoder
H264 decoder
File Format for H.264 Video
RTP Payload Format for H.264 Video
RTP Payload Format for H.264 Reduced-Complexity Decoding Operation (RCDO) Video
Reference
视频编码 AV1
概述
历史与发展
AV1 技术特性
AV1 与其他编解码器对比
AV1 在 WebRTC 中的应用
AV1 编码 Profile 和 Level
性能基准
现状与浏览器支持
构建 AV1 库
Reference
Video Process
概述
浏览器端视频处理
服务端视频处理
常见处理操作
性能考量
常用库
Video Pipeline
概述
video adaptation
概述
为什么需要视频自适应
自适应的维度
自适应策略 (Degradation Preference)
WebRTC 自适应流水线
自适应触发条件
自适应迟滞 (Adaptation Hysteresis)
Device adaptation
Network adaptation
SFU 侧的自适应
JavaScript API 配置
性能指标监控
常见问题与调优
Reference
Video Lip Sync
问题的原因
解决方案
解决的方法
相关代码
Reference
video quality
概述
指标
视频质量影响因素
码率控制
WebRTC 视频质量优化
视频质量测试工具
Reference
WebRTC Simulcast
概述
什么叫 Simulcast
SDP grouping Framework
Source-Specific Media Attributes in SDP
Negotiating Media Multiplexing Using SDP
Using Simulcast in SDP and RTP Sessions
Using SSRC with WebRTC Simulcast
WebRTC library 中对 simulcast 的描述
参考资料
WebRTC SVC
概述
Terminology
SVC 与 Simulcast 对比
VP9 SVC in WebRTC
AV1 SVC 支持
H.264 SVC 支持
SFU 中的 SVC 转发
WebRTC 中的 SVC 配置
性能对比:SVC vs Simulcast
挑战与限制
参考
Temporal scalability
概述
帧依赖模式
VP8 时间可伸缩性
VP9 时间可伸缩性
SFU 中的时间层转发
WebRTC API 配置
WebRTC 编码器封装中的实现
与拥塞控制的交互
参考
WebRTC Sharing
简介
示例1
示例2
Wireshark 抓包
Streaming
概述
流媒体需求
流媒体协议详解
协议对比
自适应码率 (ABR)
低延迟流媒体
CDN 与流媒体分发
流媒体服务器
FFmpeg 流媒体命令
参考文献
HTTP Live Streaming
简介
HLS
mpeg-ts
Protocols Enhancement
Implementation
Performance
mp4
Reference
Insertable Stream
概述
Stream API
可插入流 Insertable Streams API
案例
参考资料
Web Codecs
Overview
Interface
Example
Reference
5. QoS 与网络对抗
WebRTC QoS
WebRTC 拥塞控制
WebRTC FEC
WebRTC RTX
WebRTC Metrics
WebRTC E2E Delay
概述
流畅与清晰的平衡
Metrics
Glossary
测试工具
实例
FAQ
参考资料
WebRTC 拥塞控制
Google Congestion Control v1
Google REMB
Transport-wide Congestion Control
Bandwidth Probe
Congeston Control Evaluation
简介
基本架构
术语
交互式实时媒体的拥塞控制的需求
标准化组织及其发布的文档
标准化状况和存在的问题
常用方法
拥塞控制算法
对于拥塞控制算法的评估和验证
发送端拥塞控制架构
带宽分配策略
码率自适应流程
实际部署中的挑战
参考资料
Google Congestion Control v1
简介
详细设计
参考代码
参考资料
Google REMB
概述
1) What — REMB 是什么?
2) Why — 为什么要有 REMB?
3) How — REMB 的实现原理
4) 接收端带宽估计算法
5) WebRTC 源码中的实现
6) REMB vs Transport-CC 对比
7) REMB 的局限性与弃用状态
8) 总结
参考资料
Transport-wide Congestion Control
概述
扩展
Transport-wide Sequence Number
Transport-wide RTCP Feedback Message
Receive Delta
基于延迟的发送端拥塞控制
其他算法细节
参考资料
Bandwidth Probe
概述
何时进行探测(When)
为什么需要探测(Why)
探测策略(How)
探测集合机制(Probe Cluster)
配置参数详解
探测与拥塞控制的交互
Application Limited Region
总结
参考资料
Congeston Control Evaluation
概述
Evaluating Congestion Control for Interactive Real-Time Media
Evaluation by ns-3
WebRTC FEC
简介
FEC 的数学原理
Parity FEC
ULP FEC 详解
FlexFEC 详解
音频 FEC
FEC 与带宽的权衡
FEC/NACK Rate
WebRTC 中的 FEC 配置
参考资料
WebRTC RTX
简介
术语
Requirements and Design Rationale for a Retransmission Scheme
Retransmission Payload Format
NACK 机制详解
RTX 工作流程
RTX 用于带宽探测
RTP Packet History
RTX 与 FEC 的协同
性能分析
相关代码
参考资料
WebRTC RED
简介
SDP 扩展
Packet 数据包格式
Redundant distance
Metrics
Reference
WebRTC Feedback
简介
RTCP FB 通用包格式
传输层反馈消息 (Transport Layer FB)
荷载特定反馈消息 (Payload-Specific FB)
REMB — Receiver Estimated Maximum Bitrate
RTCP XR — Extended Reports
反馈时机与频率控制
SDP 中的反馈能力协商
WebRTC 实现中的反馈处理
反馈对质量的影响
反馈消息汇总表
参考
网络抖动:成因与测量
概述
抖动的成因
抖动的测量
抖动与 Jitter Buffer
抖动对不同媒体的影响
实际网络中的抖动数据
监控与调试
小结
Jitter Buffer
概述
抖动的类型与度量
抖动缓冲区的工作原理
固定抖动缓冲区 vs 自适应抖动缓冲区
自适应抖动缓冲区算法
WebRTC NetEQ 中的 Jitter Buffer
关键参数与调优
性能指标
实现示例
常见问题与解决方案
实现 Jitter Buffer 的步骤
参考资料
视频 Jitter Buffer
概述
与音频 Jitter Buffer 的差异
帧组装(Frame Assembly)
帧依赖管理
自适应缓冲策略
丢帧策略
WebRTC 中的实现
小结
WebRTC NetEQ 深度解析
概述
架构:MCU + DSP
时间拉伸算法
丢包隐藏(Expand)
延迟控制
源码结构
性能指标
小结
丢包隐藏(PLC)技术
概述
PLC 技术分类
基于波形的 PLC
基于模型的 PLC
基于深度学习的 PLC
PLC 质量评估
小结
WebRTC E2E Delay
概述
延迟组成分析
延迟目标与标准
延迟测量方法
Media Stats
延迟优化策略
音视频同步
Glass-to-Glass 延迟测量
总结
参考资料
WebRTC Metrics
Overview
RTCStatsReport 关键指标
常用计算公式
RTCP XR 扩展指标
监控与告警
工具与实践
参考资料
综合抗弱网策略
概述
抗弱网技术栈
FEC 与 NACK 的配合
码率自适应策略
Jitter Buffer 与 FEC/NACK 的联动
弱网场景实战
监控指标
小结
Web Transport
Overview
核心特性
与 WebSocket 对比
在 WebRTC 中的应用
服务端实现
参考资料
6. WebRTC 源码分析
WebRTC 源码概览
Overview
Domain object
Modules
Import Interfaces
Treasure in code
Contribution
相关章节
Reference
WebRTC 构建工具
构建工具
WebRTC 构建浏览器
构建工具
构建 Chrome
Build Chrome on mac
构建 Firefox
WebRTC 源码构建
Source code
配置文件
Reference
WebRTC test
Overview
chrome tools
Chrome testing
Firefox testing
Unit testing
Test scenarios
参考资料
WebRTC issues
FAQ
常用调试工具
WebRTC Demux
Overview
RtpDemuxer
Snippets
WebRTC Thread Model
概述
调用规则
核心类
线程安全注解
实际场景中的线程交互
FAQ
参考资料
WebRTC Call
Overview
Call 类的职责
与 PeerConnection 的关系
AudioSendStream 管理
VideoSendStream 管理
带宽估计与比特率分配
参考资料
WebRTC GCC
Overview
构建 libwebrtc
拥塞控制相关代码
主要方法
主要配置
主要流程
Related Classes
WebRTC Congestion Control
Overview
核心接口
config classes 配置类
Controller classes
Estimator classes
unit tests
Reference
WebRTC Bandwidth Probe
Overview
Flow
structures
WebRTC REMB Code
Overview
Controller
Algorigthm
Class and Snippets
WebRTC Loss based Bandwidth Estimation
Overview
classes
WebRTC Pacer
概述
在 WebRTC 中的位置
核心类
包类型与优先级
发送速率控制
Probe 探测
与 GCC 的协作
参考资料
WebRTC DTLS
Overview
API of openssl/boringssl
classes
Snippets
WebRTC SCTP library
Overview
相关代码
WebRTC RTP RTCP module
Overview
WebRTC 中计算的汇报间隔
WebRTC中支持的 RTP 扩展头
RTCP 包
WebRTC RTP Sender
Overview
Implementation
WebRTC SDP Offer Answer
Overview
SdpOfferAnswerHandler 类
CreateOffer 流程
CreateAnswer 流程
Transceiver 管理
SetLocalDescription / SetRemoteDescription
参考资料
WebRTC Packet Buffer
概述
视频 Packet Buffer
音频 Jitter Buffer
关键参数
参考资料
WebRTC RTX Code
Overview
RTX Config
RTX 包的接收与处理
Relative Classes
Relative log
WebRTC NACK 实现
概述
RTCP NACK 包格式
核心类
NackRequester 工作流程
NACK 重试与限制
发送端:RtpPacketHistory
NACK 与其他丢包恢复的协同
在 JavaScript 中观察 NACK
参考资料
WebRTC OveruseFrameDetector
概述
关键指标
检测状态
降级策略
核心代码结构
与 QualityScaler 的关系
参考资料
Remote Bitrate Estimator
概述
带宽使用状态
核心接口
关键子模块
新旧版本演进
参考资料
WebRTC PeerConnection Channel
概述
Channel 与 Transport 的关系
参考资料
WebRTC PeerConnection Example
Overview
PeerConnection Server
PeerConnection Client
FAQ
WebRTC Video Flow
Overview
VideoSendStream 发送流程
VideoReceiveStream 接收流程
码率自适应
Simulcast 与 SVC
参考资料
WebRTC Configuration
RTP Config
Janus Code analysis 1
Overview
架构概述
核心模块 (janus.c)
插件系统
ICE 处理
参考资料
Aiortc library
Overview
Signal
datachannel
RTP packet 处理
libopus
Overview
Installation
Usage
libopenh264
Overview
Installation
Usage
Reference
7. WebRTC 实践
WebRTC 应用实践要点
WebRTC 服务器
服务器的主要功能
服务器中需要维护领域对象
WebRTC 的开源实现
FAQ
How to disable SRTP?
WebAssembly
Overview
核心原理
工具链
3rd party /open source components
Reference
coturn
概述
NAT 穿越原理
STUN 协议
TURN 协议
coturn 功能特性
Installation
配置详解
TURN over TCP 和 TLS
运行与管理
测试
性能优化
安全加固
Docker 部署示例
云部署注意事项
Reference
AppRTC
概述
架构
信令流程
本地部署
学习要点
参考资料
aiortc
概述
安装
基本用法
视频处理示例
架构说明
参考资料
Record RTC Tool
Overview
Reference
SFU
Overview
SFU vs MCU vs Mesh 对比
SFU 架构
SFU 关键特性
SFU 所需要的相关库
流行的 SFU 实现
SFU 可扩展性
SFU 优化
WebRTC 客户端 SFU 集成
Features
Example
Reference
Open WebRTC Toolkit Media Server
Overview
架构
MCU 与 SFU 模式
Intel 硬件加速
安装部署
参考资料
Janus Gateway
Overview
Installation and startup
configuration
usage and testing
code structure
dependencies
Janus Plugins
Overview
Echo test
Video Room
Reference
Janus Modules
Overview
入口函数
MediaSoup
概述
架构详解
安装与配置
服务端开发
客户端开发
信令设计
Simulcast 和 SVC 支持
录制
水平扩展
mediasoup-demo 部署
常见问题
Example
Reference
Pion
概述
模块组成
安装
基本用法示例
Interceptor 框架
SFU 开发要点
官方示例
参考资料
SRS
概述
架构设计
安装
核心功能
WebRTC 集成
集群部署
监控与管理
性能调优
常见场景
SRS vs 其他服务器
Quick Start
参考文献
WebRTC Transcriber
概述
技术栈
架构
关键源码
安装与运行
WebRTC 相关要点
参考
Lazy Rabbit Meeting
概述
技术栈
架构
JMPP 信令协议
SFU 引擎实现
关键源码
安装与运行
REST API
WebRTC 相关要点
测试
参考
FreeSWITCH 概述
概述
历史与社区
架构概览
与其他项目的比较
核心特性
典型应用场景
安装方法
小结
参考资料
FreeSWITCH 架构
概述
核心架构
模块系统
会话与通道模型
事件系统(ESL)
数据库后端
媒体处理管道
线程模型
目录结构与配置文件
小结
参考资料
FreeSWITCH 与 WebRTC
概述
Verto 协议
SRTP/DTLS 配置
ICE/STUN/TURN 集成
编解码器协商
SDP 处理
mod_verto 配置
JavaScript 客户端示例
与 Janus 的对比
常见问题排查
小结
参考资料
FreeSWITCH SIP 配置与实践
概述
SIP Profile 配置
用户目录与注册
Dialplan 基础
NAT 穿越
TLS/SRTP 安全配置
SIP Trunk 配置
呼叫路由示例
SIP 调试
参考资料
FreeSWITCH 媒体处理
概述
支持的音频编解码器
支持的视频编解码器
编解码器协商与转码
媒体代理与媒体绕行
录音与回放
DTMF 处理
音频处理
RTP 配置与优化
参考资料
FreeSWITCH 会议
概述
mod_conference 模块
会议配置文件
音频混音与视频 MCU
会议控制
会议事件与 CDR
WebRTC 参与者接入会议
会议录制
PIN 保护的会议
大规模会议优化
会议 API 命令参考
参考资料
FreeSWITCH IVR 与语音应用
概述
mod_ivr 基础
基于 Dialplan 的 IVR
Lua 脚本实现 IVR
JavaScript 脚本实现 IVR
TTS 集成
ASR 集成
MRCP 协议支持
语音信箱(mod_voicemail)
呼叫队列与 ACD
示例:构建完整的 IVR 菜单
参考资料
FreeSWITCH 集群与高可用
概述
单节点的局限性
集群架构方案
mod_sofia 多 Profile 配置
数据库复制
共享注册
使用 Kamailio 负载均衡
故障转移策略
Docker/Kubernetes 部署
监控与健康检查
性能调优
参考资料
FreeSWITCH ESL 编程
概述
Inbound 与 Outbound 模式
ESL 协议详解
Python ESL 客户端
Node.js ESL 客户端
Go ESL 客户端
常用 ESL 命令
构建呼叫控制应用
事件类型参考
ESL 应用最佳实践
参考资料
FreeSWITCH 故障排查
概述
fs_cli 调试命令
日志配置
SIP 抓包分析
RTP 调试
常见问题排查
NAT 相关问题
TLS/证书问题
性能监控
诊断命令速查表
参考资料
Video Quality
Overview
Tools
Audio Quality
Overview
Remote Sharing
Overview
示例1
示例2
Wireshark 抓包
Remote Control
概述
传统协议对比
WebRTC 远程控制架构
DataChannel 控制协议设计
WebRTC 作为 VNC/RDP 网关
关键技术挑战
参考资料
WebRTC Security
Overview
遵循浏览器的安全模型
WebRTC 应用的安全
术语
参考资料
8. WebRTC 工具
WebRTC 常用工具
binutils
Linux Tools
Python Tools
Devtools
Webrtc internals
Chome Devtools
RTP Log Analyzer
Video Replay
netcat
简介
UDP server and client
Samples
Reference
scapy
简介
Commands
抓包
参考资料
SoX
简介
FFmpeg
概述
组件
处理流程
基本用法
媒体信息分析
音频处理
视频处理
RTP 推拉流
RTSP 推拉流
YUV 原始视频处理
PCM 原始音频处理
视频质量对比
常用技巧
FFmpeg 库编程
例 1:音频解码(文件 → PCM)
例 2:音频编码(PCM → Opus)
例 3:音频重采样(libswresample)
例 4:视频解码(文件 → YUV 帧)
例 5:视频编码(YUV → H.264)
例 6:视频缩放和像素格式转换(libswscale)
例 7:完整转码流程(解封装 → 解码 → 重采样 → 编码 → 封装)
常见陷阱与最佳实践
参考资料
GStreamer
GStreamer Development
GStreamer WebRTC
概述
核心特性
安装
基本概念
命令行工具
常用 Pipeline 示例
RTP 流传输
屏幕采集
调试技巧
FAQ
参考
OpenSSL
Overview
Snippets
BIO
Reference
VNC vs. RDP
Overview
Tight VNC on Ubuntu
novnc
Reference
Linux Traffic Control
简介
TC 中的基本概念
TC 用法
tc-tbf
tc-netem
netimpair
参考资料
iPerf
Overview
安装
用法
实例
Reference
Linux Performance tools
简介
Reference
tcpdump
简介
Example
Reference
wireshark
Installation
Tools
Capturing RTP streams
Capturing TURN RTP streams
text2cap
FAQ
Reference
Network Simulator
简介
安装
测试
基本概念
示例程序
基本框架
参考资料
Data Analytics
Overview
WebRTC 常用工具
binutils
如何阻塞端口
其他常用工具
参考资料
Build Tools
Overview
gn
clang
Reference
CMake Quick Guide
Overview
基本语法
CMakeLists.txt 结构
常用命令
WebRTC 相关构建示例
参考资料
Docker
Overview
快速上手
Docker with Selenium
Docker image
Docker Hub
Docker Container
Docker data volume
Tips
参考资料
LAL
概述
核心特性
工作原理
安装
基本用法
manifest.json 示例
WebRTC 相关应用场景
类似工具对比
参考
selenium
What
How
Why
Fuzzer
Overview
Getting Started
Reference
Kitty
概述
安装
框架架构
核心概念
Server Fuzzing 示例
Client Fuzzing 示例
WebRTC 相关应用场景
Katnip:协议实现库
参考
9. WebRTC 关联技术
信号处理基础
信号
滤波
傅立叶变换 FT
离散余弦变换 DCT
参考资料
数字信号处理
信号是什么
信号处理中用到的统计值
什么是数字信号处理
数字信号处理的关键技术
滤波
傅立叶变换
傅立叶变换 FT
离散余弦变换 DCT
参考资料
卡尔曼滤波笔记
简介
预备知识
术语
离散卡尔曼滤波
Security
Overview
Simple Authentication and Security Layer
Security Check list
Glossary
Kerberos
Reference
Matlab 科学计算
Overview
常量
多媒体技术
数字音频处理
数字图像处理
数字视频处理
主要内容
数理基础
数学
概率与统计
Overview
Glossary
科学计算
numpy
Jenkins
简介
Pipeline 配置
WebRTC 构建自动化
测试集成
常用 Jenkins 插件
参考资料
Sphinx
Overview
Example
Reference
linux environment
简介
AI 对 WebRTC 技术发展的影响
概述
音频处理中的 AI
视频处理中的 AI
网络自适应中的 AI
AI 驱动的新应用场景
AI 推理的部署架构
未来展望
参考资料
术语表
WebRTC 学习笔记
9. WebRTC 关联技术
上一页
下一页
9. WebRTC 关联技术
本章介绍与 WebRTC 相关的基础技术,包括数字信号处理、多媒体基础、数学统计、安全等。
目录
信号处理基础
数字信号处理
傅立叶变换
卡尔曼滤波笔记
Security
Matlab 科学计算
多媒体技术
数理基础
概率与统计
科学计算
Jenkins
Sphinx
linux environment
AI 对 WebRTC 技术发展的影响