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 学习笔记
  • 3. 音频技术
上一页 下一页

3. 音频技术

本章涵盖音频基础知识、语音编解码器(Opus/G.711/G.722/G.729/AMR/AAC/EVS)、音频处理流水线(AEC/AGC/ANS/VAD)、Web Audio API 等。

目录

  • WebRTC 媒体概论
  • Audio Basic
  • WebRTC 音频
  • 语音编解码总览
  • G.711 — PSTN 的基石
  • G.722 — 宽带语音先驱
  • G.729 — 低码率语音之王
  • AMR/AMR-WB — 移动通信编码
  • AAC — 音乐场景的王者
  • EVS — VoLTE 的核心编码
  • Audio Opus Codec
  • 编解码器横评
  • Audio Process pipeline
  • Acoustic Echo Canceller
  • Automatic Gain Control
  • Automatic Noise Suppression
  • Voice Activity Detector
  • Audio Level
  • Web Audio API
  • Audio worklet
  • Audio Analysis
  • Audio Quality
  • Audio QoS
上一页 下一页

© 版权所有 2021 ~ 2026, Walter Fan, Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

利用 Sphinx 构建,使用的 主题 由 Read the Docs 开发.