《音视频QoS技术:WebRTC带宽估计/拥塞控制GCC技术深入剖析与实现》

该课程专注于音视频传输中的 QoS(Quality of Service)技术,特别聚焦于 WebRTC(Web Real-Time Communication) 框架中的 GCC(Google Congestion Control)带宽估计与拥塞控制技术。课程从网络传输的基础概念出发,深入剖析 WebRTC 的带宽适应机制、传输优化策略和核心算法实现,帮助学习者系统掌握 WebRTC 在实时音视频传输中的带宽管理原理及其代码级实现。


一、课程特色

  1. 深度剖析 WebRTC GCC 技术
    课程以 GCC 算法为核心,详细讲解 Google Congestion Control 的实现原理、数学模型和协议交互流程,涵盖网络状态检测、延迟抖动估计、码率自适应、丢包处理等关键机制。
  2. 理论结合源码实战
    除了讲解原理,还会带领学员分析 WebRTC 开源代码,手把手讲解 GCC 模块如何在实际项目中部署与优化。
  3. 全面覆盖 QoS 技术栈
    涉及 带宽估计(BWE)、链路拥塞检测、码率控制、FEC(前向纠错)、NACK(重传机制) 等 QoS 技术。
  4. 真实场景案例驱动
    结合视频会议、低延迟直播、远程教育等场景,展示 WebRTC GCC 如何优化实际传输效果。

二、课程大纲

模块 1:实时音视频与 QoS 基础

  • 实时音视频传输特性与 QoS 需求
  • RTP/RTCP 协议及传输过程解析
  • 网络延迟、抖动、丢包率、带宽波动的影响

模块 2:WebRTC QoS 框架概述

  • WebRTC 架构及媒体传输管线(Media Pipeline)
  • RTP Sender、Receiver、RTCP Receiver Report 工作机制
  • WebRTC 中的 QoS 模块组成(BWE、拥塞控制、码率调节)

模块 3:GCC(Google Congestion Control)原理

  • GCC 概述:目标、设计理念与演进
  • GCC 两大核心模块
    1. 基于丢包的码率控制(Loss-Based Control)
    2. 基于延迟的码率控制(Delay-Based Control)
  • 延迟趋势检测算法(Delay-based Estimator)
  • 带宽估计 BWE (Bandwidth Estimation) 算法
  • GCC 码率更新与平滑策略

模块 4:GCC 源码剖析

  • WebRTC 源码结构与编译指南
  • 关键模块源码解析
    • goog_cc 模块
    • send_side_bandwidth_estimationdelay_based_bwe
    • AimdRateControlOverUseDetector
  • GCC 参数调优与自适应策略

模块 5:拥塞控制与优化

  • TCP vs UDP 拥塞控制机制差异
  • GCC 与 BBR、RTP REMB、Transport-CC 对比
  • 不同网络场景下的优化策略(移动网络、弱网、5G)

模块 6:实战项目

  • 使用 WebRTC M81+ 版本搭建实时音视频传输 Demo
  • 模拟带宽波动测试 GCC 性能(利用 NetEm、tc 工具)
  • GCC 算法参数修改与自定义策略实现
  • QoS 优化方案落地实战(码率自适应 + FEC/NACK)

三、课程适合人群

  • 音视频开发工程师:想深入理解 WebRTC 传输层优化与 GCC 算法。
  • 实时通信领域开发者:从事视频会议、直播、互动应用开发。
  • 网络工程师:对传输协议、带宽控制感兴趣,想研究 QoS 技术。
  • 高校/研究人员:研究 WebRTC、音视频 QoS、低延迟传输技术。

四、学习收获

  1. 掌握 WebRTC QoS 核心模块及 GCC 带宽估计实现逻辑。
  2. 能够独立分析 GCC 源码,调整和优化带宽控制策略。
  3. 深入理解 RTP/RTCP 与码率自适应机制。
  4. 能基于 WebRTC 搭建稳定、低延迟的音视频传输系统。

五、课程时长与资源

  • 总时长:约 40-60 小时,分为理论讲解 + 源码分析 + 实战演示。
  • 配套资料
    • WebRTC 代码示例与 GCC 源码标注
    • 网络测试脚本(NetEm、tc 配置)
    • PPT 笔记、算法流程图
  • 学习工具:Linux 编译环境、Wireshark、WebRTC 开发 SDK。

课程目录:

1_1.1-拥塞控制体系架构介绍和效果演示.mp4
2_1.2-拥塞控制基础知识.mp4
3_1.3-从google的一篇论文开始学习之旅.mp4
4_2.1-实现RTP头部扩展的管理功能.mp4
5_2.2-注册transport-cc头部扩展.mp4
6_2.3-详解RTP头部扩展结构.mp4
7_2.4-RTP头部扩展内存分配1.mp4
8_2.5-RTP头部扩展内存分配2.mp4
9_2.6-RTP头部扩展内存分配3.mp4
10_2.7-RTP头部扩展内存分配4.mp4
11_2.8-RTP头部扩展内存分配5.mp4
12_3.1-写入SequenceNumber扩展.mp4
13_3.2-处理Feedback包.mp4
14_3.3-详解Feedback包结构.mp4
15_3.4-解析Feedback包.mp4
16_3.5-行程长度算法解码数据块.mp4
17_3.6-状态矢量算法解码数据块.mp4
18_3.7-解析包时间信息以及还原seq_no.mp4
19_4.1-创建google拥塞控制模块.mp4
20_4.2-使用观察者模式获得Feedback数据.mp4
21_4.3-同wireshark对比验证数据包解析结果.mp4
22_4.4-feedback数据结构转换.mp4
23_4.5-在发送端记录RTP包的发送状态.mp4
24_4.6-更新RTP包发送后的状态1.mp4
25_4.7-更新RTP包发送后的状态2.mp4
26_4.8-完成Feedback转换成内部的数据结构.mp4
27_5.1-创建基于延迟的带宽估计模块.mp4
28_5.2-基于延迟的带宽估计核心原理.mp4
29_6.1-创建包组时间差计算类.mp4
30_6.2-计算包组发送和到达时间差1.mp4
31_6.3-计算包组发送和到达时间差2.mp4
32_7.1-创建trendline单向延迟趋势估计器.mp4
33_7.2-线性回归zui小二乘法基本原理.mp4
34_7.3-线性回归zui小二乘法样本数据.mp4
35_7.4-线性回归zui小二乘法计算trend.mp4
36_7.5-利用trend进行网络过载检测.mp4
37_7.6-过载检测阈值自适应调整.mp4
38_7.7-设计实验观察trend和阈值的变化.mp4
39_8.1-创建AIMD码率控制模块.mp4
40_8.2-网络过载时降低码率.mp4
41_8.3-AIMD-判断是否进一步降低码率.mp4
42_8.4-AIMD-未知吞吐量时的码率调整.mp4
43_8.5-AIMD-已知吞吐量时的码率调整.mp4
44_8.6-AIMD-状态机状态转换.mp4
45_8.7-AIMD-估计链路容量.mp4
46_8.8-AIMD-加性增加码率.mp4
47_8.9-AIMD-慢启动模式增加码率.mp4
48_8.10-AIMD-乘性降低码率.mp4
49_9.1-创建吞吐量估计类.mp4
50_9.2-贝叶斯估计的基本思想.mp4
51_9.3-以时间窗口计算样本码率.mp4
52_9.4-贝叶斯估计吞吐量.mp4
53_10.1-基于丢包的带宽估计核心原理.mp4
54_10.2-根据RR包信息统计丢包指数.mp4
55_10.3-起始阶段的带宽估计.mp4
56_10.4-更新最小码率历史队列.mp4
57_10.5-根据丢包率调整目标码率.mp4
58_10.6-更新丢包率和RTT.mp4
59_10.7-设置发送码率、max和min码率.mp4
60_10.8-更新基于延迟的码率估计值.mp4
61_11.1-更新估计的目标码率到pacer.mp4
62_11.2-更新估计的目标码率到编码器1.mp4
63_11.3-更新估计的目标码率到编码器2.mp4
64_11.4-发送端码率估计测试.mp4
65_11.5-周期性更新目标码率到pacer.mp4
66_11.6-发送端码率估计小结.mp4
67_12.1-ALR检测的基本原理和作用.mp4
68_12.2-创建AlrDetector.mp4
69_12.3-更新ALR状态的开始时间.mp4
70_12.4-设置ALR的带宽估计值.mp4
71_12.5-利用ALR优化吞吐量估计.mp4
72_12.6-利用ALR优化基于延迟的码率估计.mp4
73_13.1-Probe的基本原理和作用.mp4
74_13.2-设置起始码率的时候触发探测.mp4
75_13.3-初始化Probe.mp4
76_13.4-创建ProbeCluster.mp4
77_13.5-存储ProbeCluster信息到队列.mp4
78_14.1-启动Probe.mp4
79_14.2-Pacer高优执行probe探测任务1.mp4
80_14.3-Pacer高优执行probe探测任务2.mp4
81_14.4-更新探测执行后的状态信息.mp4
82_14.5-构造padding包1.mp4
83_14.6-构造padding包2.mp4
84_15.1-创建Probe码率估计器.mp4
85_15.2-统计Probe结果.mp4
86_15.3-计算Probe码率.mp4
87_15.4-获取和重置Probe码率.mp4
88_16.1-完善设置起始码率时的探测.mp4
89_16.2-将probe结果作用到基于延迟的码率估计.mp4
90_16.3-设置码率估计值.mp4
91_16.4-主动请求探测1.mp4
92_16.5-主动请求探测2.mp4
93_16.6-周期性探测处理1.mp4
94_16.7-周期性探测处理2.mp4
95_16.8-Probe技术小结.mp4
96_17.1-通过config的方式初始化拥塞控制模块1.mp4
97_17.2-通过config的方式初始化拥塞控制模块2.mp4
98_18.1-总结和未来工作.mp4
音视频QoS优化之WebRTC拥塞控制(GCC)技术深入剖析和代码实战.pdf

声明:本站所发布的一切视频课程仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站所有课程来自网络,版权争议与本站无关。如有侵权请联系联系客服QQ:1960026872或登录本站账号进入个人中心提交工单留言反馈,我们将第一时间处理!