如果您是实时音视频、WebRTC技术的学习者和爱好者:
  • 这里可以帮助你快速入门WebRTC技术,降低学习的门槛和难度
  • 这里可以帮助你成体系的学习WebRTC核心技术,从服务端到跨平台SDK(win、android、iOS等)
  • 这里可以帮助你深入掌握WebRTC的硬核技术(抗弱网/抖动/丢包、平滑发送、带宽估计、动态码率自适应等)
  • ...

一切尽在WebRTC视频课, 我们一起来学习吧!

联系我们

XRTC学习交流QQ群: 1002300877
作者微信号: str2num
微信群: 听香水榭(XRTC学习交流1群)

-->点击进入课程购买入口

WebRTC视频课程学习指南



课程特点

实战驱动

基于WebRTC的源码,带领大家从0到1手工实现所有功能代码,并调试效果

步步为营

分版本渐进迭代,一步步还原WebRTC的核心架构和硬核技术

深入剖析

结合RFC标准文档、计算机和数学理论,深入剖析背后的设计思想和原理

实验验证

针对性设计测试实验,验证设计思想和功能实现效果,所见即所得
WebRTC入门必学课程(强烈推荐
学习 课程系列 课时 语言 核心技能
我要学习 XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战 168课时/61小时 go/c++
  • WebRTC P2P通信流程
  • 轻量级信令服务
  • 高性能C++音视频SFU后台服务
  • STUN/ICE/DTLS协议详解与实现
  • WebRTC推拉流实现
我要学习 C++音视频-Qt5+WebRTC原生API接口推拉流项目实战 79课时/21小时 c++
  • WebRTC实时通信的核心原理
  • WebRTC原版库的编译方法、各类问题解决
  • WebRTC lib库集成到Qt等UI框架的方法
  • WebRTC源码的调试和研究方法
  • WebRTC核心C++ API接口的使用方法和技巧
  • 基于QT5 + WebRTC C++ API的实时音视频推拉流项目
WebRTC服务端课程系列
学习 课程系列 课时 语言 核心技能
我要学习 XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战 168课时/61小时 go/c++
  • WebRTC P2P通信流程
  • 轻量级信令服务
  • 高性能C++音视频SFU后台服务
  • STUN/ICE/DTLS协议详解与实现
  • WebRTC推拉流实现
我要学习 XRTC2.0-基于WebRTC的高并发低延迟直播系统 104课时/30小时 go/c++
  • SFU服务支持1v多直播模式
  • SFU服务支持DTLS开关控制
  • RTCP通用处理框架
  • 支持SR/RR/NACK/PLI/XR等RTCP包处理
  • 多线程分发处理
  • 上行推流QoS优化
我要学习 XRTC-3.0基于WebRTC的高并发低延迟直播系统(分布式版) 筹备中 go/c++
  • 支持服务器级联
  • 支持分布式部署
我要学习 XRTC-4.0大型商用级RTC系统 筹备中 go/c++
  • 智能调度
  • 全球节点路由优化
  • 多协议转换
WebRTC客户端课程系列
学习 课程系列 课时 语言 核心技能
我要学习 基于WebRTC的跨平台实时音视频SDK-推流 144课时/48小时 c++
  • 客户端跨平台SDK架构设计
  • 音视频链式架构设计
  • 音视频采集技术
  • x264/opus编码技术
  • h264打包RTP技术
  • WebRTC peerconnection建连技术
  • D3D渲染技术
  • 音频3A处理技术
我要学习 基于WebRTC的跨平台实时音视频SDK-拉流 105课时/34小时 c++
  • H264组帧技术
  • RTCP包处理技术
  • 丢包重传处理
  • 视频抗抖动技术
  • ffmpeg解码技术
  • NetEq音频引擎
  • 音视频同步技术
我要学习 纯血鸿蒙版-基于WebRTC的跨平台实时音视频SDK 更新中 ArkTS/c++
  • 掌握WebRTC跨平台SDK系统架构设计
  • 掌握纯血鸿蒙平台开发基础技术
  • 掌握纯血鸿蒙平台编译WebRTC/FFmpeg/x264/opus等第三方c++基础库的方法
  • 掌握纯血鸿蒙平台NDK开发技术
  • 掌握基于XComponent的自定义XRTC视频渲染组件
  • 掌握纯血鸿蒙平台OpenGLES Shader渲染技术
  • 掌握纯血鸿蒙平台音频采集和播放技术
  • 掌握纯血鸿蒙平台WebRTC推流技术
  • 掌握纯血鸿蒙平台WebRTC拉流技术
我要学习 Ubuntu版-基于WebRTC的跨平台实时音视频SDK 筹备中 c++
  • 筹备中
我要学习 Android版-基于WebRTC的跨平台实时音视频SDK 筹备中 java/c++
  • 筹备中
我要学习 iOS版-基于WebRTC的跨平台实时音视频SDK 筹备中 oc/c++
  • 筹备中
我要学习 electron版-基于WebRTC的跨平台实时音视频SDK 筹备中 nodejs/c++
  • 筹备中
WebRTC原生开发系列
学习 课程系列 课时 语言 核心技能
我要学习 C++音视频-Qt5+WebRTC原生API接口推拉流项目实战 79课时/21小时 c++
  • WebRTC实时通信的核心原理
  • WebRTC原版库的编译方法、各类问题解决
  • WebRTC lib库集成到Qt等UI框架的方法
  • WebRTC源码的调试和研究方法
  • WebRTC核心C++ API接口的使用方法和技巧
  • 基于QT5 + WebRTC C++ API的实时音视频推拉流项目
我要学习 Android版-WebRTC原生API接口推拉流项目实战 筹备中 java/c++
  • 筹备中
我要学习 iOS版-WebRTC原生API接口推拉流项目实战 筹备中 oc/c++
  • 筹备中
我要学习 Ubuntu版-WebRTC原生API接口推拉流项目实战 筹备中 c++
  • 筹备中
我要学习 electron版-WebRTC原生API接口推拉流项目实战 筹备中 nodejs/c++
  • 筹备中
WebRTC QoS优化课程系列
学习 课程系列 课时 语言 核心技能
我要学习 音视频QoS技术:WebRTC丢包重传技术(NACK)深入剖析和实现 12课时/4小时 c++
  • WebRTC丢包重传的核心思想
  • WebRTC NACK的触发机制
  • WebRTC NACK的清理策略
  • WebRTC乱序场景下的优化策略
我要学习 音视频QoS技术:WebRTC平滑发送技术(Pacer)深入剖析和实现 16课时/6小时 c++
  • WebRTC平滑发送的核心思想
  • WebRTC平滑发送的技术实现
  • WebRTC平滑发送的延迟优化
我要学习 音视频QoS技术:WebRTC带宽估计/拥塞控制技术(GCC)深入剖析和实现 98课时/34小时 c++
  • WebRTC拥塞控制GCC体系架构和设计思想
  • 基于延迟的带宽估计
  • 基于丢包的带宽估计
  • 吞吐量估计
  • ALR检测和运用
  • 带宽快速探测Probe技术
  • 动态码率自适应综合调优技术
我要学习 音视频QoS技术-WebRTC抗抖动技术jitterbuffer深入剖析和实现 筹备中 nodejs/c++
  • 筹备中
我要学习 音视频QoS技术-WebRTC前向纠错技术FEC深入剖析和实现 筹备中 nodejs/c++
  • 筹备中
我要学习 音视频QoS技术-WebRTC联播技术simulcast深入剖析和实现 筹备中 nodejs/c++
  • 筹备中
我要学习 音视频QoS技术-WebRTC音频引擎技术NetEq深入剖析和实现 筹备中 nodejs/c++
  • 筹备中
我要学习 音视频QoS技术-WebRTC分层编码技术SVC深入剖析和实现 筹备中 nodejs/c++
  • 筹备中
一些建议

我是做音视频客户端的,有必要学习服务端技术吗?或者我是做音视频服务端的,有必要学习客户端技术吗?

对于音视频技术而言,特别是RTC技术,往往是需要前后端密切配合的,如果能对前后端技术均有一定的了解,然后再有所偏重,可能会更好。如果是偏向客户端,至少需能够自主搭建服务端环境,方便深入调试和测试;如果是偏向服务端,至少自己能够编写客户端测试工具,方便调试服务器功能。

学习WebRTC技术推荐的一种方法

比较推荐一个方法,我称之为固定一端法,我们在学习某个WebRTC技术时,最好让通信的另一端是一个标准的WebRTC环境,这样我们就可以将精力集中在自己实现的这一端,避免两端都是变数,增加调试成本。比如我们在实现WebRTC服务端时,尽量就用浏览器作为客户端来测试,它是一个标准的WebRTC工具,如果出现问题,大概率是服务端自己实现的问题

学习WebRTC有哪些好的测试工具,问题分析方法?

  • 如果是用浏览器作为测试工具,充分利用chrome://webrtc-internals来观察相关的指标数据,帮助分析问题。
  • 善于使用wireshark网络抓包工具来分析问题,特别是网络协议交互类的。
  • 善于使用clumsy,winShaper等弱网模拟工具,linux服务端可使用tc命令来模拟弱网,来构建实验环境。
  • 除了使用debug调试工具外,合理的设计log输出,来帮助分析和定位问题。
  • 对于随着时间变化的动态数据,一种简单有效的办法是存成文本,然后导入excel,绘制成图表观察。

WebRTC入门必学课程(推荐入门必学)

老司机手把手带着学,少走弯路

2门

268节

90小时

课程数量 课程节数 课程时长
第1门课程 - XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战

XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战

168节

61小时

go/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

第一阶段: WebRTC快速入门

  • Web端屏幕共享技术
  • WebRTC P2P核心通信流程
  • WebRTC web API的综合运用
  • go搭建http/https服务

第二阶段: 基础系统架构

  • 用go实现一个轻量级的http开发框架
  • 基于libev的高性能事件驱动网络编程
  • 事件循环/无锁队列的原理和实现
  • go与c++之间的RPC功能设计和实现

第三阶段: WebRTC推流

  • WebRTC推流功能实现
  • 服务端高性能ICE网络框架实现
  • WebRTC offser/answer SDP详解
  • STUN/ICE/DTLS等协议栈详解
  • WebRTC peerconnection技术

第四阶段: WebRTC拉流

  • WebRTC拉流功能实现
  • 音视频实时分发架构设计
  • DTLS协商秘钥的获取
  • 运用libsrtp进行音视频包的加密和解密处理
  • RTP/RTCP/SRTP/SRTCP协议解析

技能标签

  • 屏幕共享技术
  • P2P
  • 事件驱动网络编程
  • libev
  • 无锁队列
  • RPC
  • STUN/TURN/ICE/DTLS
  • offer/answer
  • SDP
  • peerconnection
  • libsrtp
  • rtp/rtcp/srtp/srtcp
第2门课程 - C++音视频-QT5+WebRTC原生API接口推拉流项目实战

C++音视频-QT5+WebRTC原生API接口推拉流项目实战

-节

-小时

go/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • WebRTC实时通信的核心原理
  • WebRTC原版库的编译方法、各类问题解决
  • WebRTC lib库集成到Qt等UI框架的的方法
  • WebRTC源码的调试和研究方法
  • WebRTC核心C++ API接口的使用方法和技巧
  • 手把手实现基于QT5 + WebRTC C++ API的实时音视频推拉流项目
  • 本项目支持跨平台(以windows为案例),但可支持windows、linux、mac等平台的学习
  • 基于课程的内容,后续可以拓展实现视频通话、视频会议、低延迟直播等项目功能

技能标签

  • 编译webrtc.lib
  • 调试WebRTC源码
  • SDK架构设计
  • 音视频采集
  • peerconnection
  • OpenH264编解码
  • ffmpeg解码
  • D3D渲染

WebRTC服务端课程体系

老司机手把手带着学,少走弯路

5门

484节

155小时

课程数量 课程节数 课程时长
第1门课程 - XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战

XRTC1.0-基于WebRTC的大型分布式实时音视频XRTC系统项目实战

168节

61小时

go/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

第一阶段: WebRTC快速入门

  • Web端屏幕共享技术
  • WebRTC P2P核心通信流程
  • WebRTC web API的综合运用
  • go搭建http/https服务

第二阶段: 基础系统架构

  • 用go实现一个轻量级的http开发框架
  • 基于libev的高性能事件驱动网络编程
  • 事件循环/无锁队列的原理和实现
  • go与c++之间的RPC功能设计和实现

第三阶段: WebRTC推流

  • WebRTC推流功能实现
  • 服务端高性能ICE网络框架实现
  • WebRTC offser/answer SDP详解
  • STUN/ICE/DTLS等协议栈详解
  • WebRTC peerconnection技术

第四阶段: WebRTC拉流

  • WebRTC拉流功能实现
  • 音视频实时分发架构设计
  • DTLS协商秘钥的获取
  • 运用libsrtp进行音视频包的加密和解密处理
  • RTP/RTCP/SRTP/SRTCP协议解析

技能标签

  • 屏幕共享技术
  • P2P
  • 事件驱动网络编程
  • libev
  • 无锁队列
  • RPC
  • STUN/TURN/ICE/DTLS
  • offer/answer
  • SDP
  • peerconnection
  • libsrtp
  • rtp/rtcp/srtp/srtcp
第2门课程 - XRTC2.0-WebRTC高并发低延迟直播系统项目实战

XRTC2.0-WebRTC高并发低延迟直播系统项目实战

104节

30小时

go/c++

中级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • 开关控制是否启用加密传输
  • 支持透传1v1和直播1v多两种音视频分发模式
  • 实现通用RTCP包处理框架
  • 支持SR、RR、XR、NACK、PLI等常用RTCP的生成和解析
  • 支持多线程分发
  • 针对直播模式,进行了一定的QoS质量调优

技能标签

  • 1v多直播
  • RTCP包处理
  • 多线程
  • QoS优化
第3门课程 - 音视频QoS-WebRTC丢包重传NACK技术深入剖析和实现

音视频QoS-WebRTC丢包重传NACK技术深入剖析和实现

12节

4小时

go/c++

中级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • WebRTC丢包重传的核心思想
  • WebRTC NACK的触发机制
  • WebRTC NACK的清理策略
  • WebRTC乱序场景下的优化策略

技能标签

  • 抗丢包
  • 丢包重传
第4门课程 - XRTC3.0-基于WebRTC的高并发低延迟直播系统(分布式版)

XRTC3.0-基于WebRTC的高并发低延迟直播系统(分布式版)

-节

-小时

go/c++

高级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...
第5门课程 - XRTC4.0-大型商用RTC服务

XRTC4.0-大型商用RTC服务

-节

-小时

go/c++

高级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...

WebRTC客户端课程体系

老司机手把手带着学,少走弯路

5门

-节

-小时

课程数量 课程节数 课程时长
第1门课程 - 基于WebRTC的跨平台实时音视频SDK-推流

基于WebRTC的跨平台实时音视频SDK-推流

144节

48小时

c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程收获

  • 客户端跨平台SDK架构设计
  • 音视频链式架构设计
  • 音视频采集技术
  • x264/opus编码技术
  • h264打包RTP技术
  • WebRTC peerconnection建连技术
  • D3D渲染技术
  • 音频3A处理技术

技能标签

  • 跨平台
  • SDK架构设计
  • 链式架构设计
  • 音视频采集
  • x264/opus
  • D3D
  • 音频3A算法
第2门课程 - 基于WebRTC的跨平台实时音视频SDK-拉流

基于WebRTC的跨平台实时音视频SDK-拉流

-节

-小时

c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • H264组帧技术
  • RTCP包处理技术
  • 丢包重传处理
  • 视频抗抖动技术
  • ffmpeg解码技术
  • NetEq音频引擎
  • 音视频同步技术

技能标签

  • 组帧
  • RTCP包处理
  • 抗抖动
  • 抗丢包
  • ffmpeg解码
  • NetEq
  • 音视频同步
第3门课程 - 基于WebRTC的跨平台实时音视频SDK-Android版

基于WebRTC的跨平台实时音视频SDK-Android版

-节

-小时

java/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中
第4门课程 - 基于WebRTC的跨平台实时音视频SDK-iOS版

基于WebRTC的跨平台实时音视频SDK-iOS版

-节

-小时

oc/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...
第5门课程 - 基于WebRTC的跨平台实时音视频SDK-electron版

基于WebRTC的跨平台实时音视频SDK-electron版

-节

-小时

nodejs/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...

WebRTC原生开发课程体系

老司机手把手带着学,少走弯路

4门

-节

-小时

课程数量 课程节数 课程时长
第1门课程 - C++音视频-Qt5+WebRTC原生API接口推拉流项目实战

C++音视频-Qt5+WebRTC原生API接口推拉流项目实战

-节

-小时

c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程收获

  • WebRTC实时通信的核心原理
  • WebRTC原版库的编译方法、各类问题解决
  • WebRTC lib库集成到Qt等UI框架的的方法
  • WebRTC源码的调试和研究方法
  • WebRTC核心C++ API接口的使用方法和技巧
  • 手把手实现基于QT5 + WebRTC C++ API的实时音视频推拉流项目
  • 本项目支持跨平台(以windows为案例),但可支持windows、linux、mac等平台的学习
  • 基于课程的内容,后续可以拓展实现视频通话、视频会议、低延迟直播等项目功能

技能标签

  • 编译webrtc.lib
  • 调试WebRTC源码
  • SDK架构设计
  • 音视频采集
  • peerconnection
  • OpenH264编解码
  • ffmpeg解码
  • D3D渲染
第2门课程 - Android+WebRTC原生API接口推拉流项目实战

Android+WebRTC原生API接口推拉流项目实战

-节

-小时

java/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...
第3门课程 - iOS+WebRTC原生API接口推拉流项目实战

iOS+WebRTC原生API接口推拉流项目实战

-节

-小时

oc/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中
第4门课程 - electron+WebRTC原生API接口推拉流项目实战

electron+WebRTC原生API接口推拉流项目实战

-节

-小时

nodejs/c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

筹备中...

技能标签

筹备中...

WebRTC QoS课程体系

老司机手把手带着学,少走弯路

4门

166节

64小时

课程数量 课程节数 课程时长
第1门课程 - 音视频QoS-WebRTC丢包重传NACK技术深入剖析和实现

音视频QoS-WebRTC丢包重传NACK技术深入剖析和实现

12节

4小时

c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程收获

  • WebRTC丢包重传的核心思想
  • WebRTC NACK的触发机制
  • WebRTC NACK的清理策略
  • WebRTC乱序场景下的优化策略

技能标签

  • 抗丢包
  • 丢包重传
第2门课程 - 音视频QoS技术:WebRTC平滑发送(Pacer)技术深入剖析和实现

音视频QoS技术:WebRTC平滑发送(Pacer)技术深入剖析和实现

16节

6小时

c++

中级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • WebRTC平滑发送的核心思想
  • WebRTC平滑发送的技术实现
  • WebRTC平滑发送的延迟优化

技能标签

  • pacer平滑发送
第3门课程 - 音视频QoS技术:WebRTC带宽估计/拥塞控制GCC技术深入剖析和实现

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

98节

34小时

c++

高级

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • WebRTC拥塞控制GCC体系架构和设计思想
  • 基于延迟的带宽估计
  • 基于丢包的带宽估计
  • 吞吐量估计
  • ALR检测和运用
  • 带宽快速探测Probe技术
  • 动态码率自适应综合调优技术

技能标签

  • 拥塞控制
  • gcc
  • 带宽估计
  • 最小二乘法
  • trendline
  • 动态码率自适应
  • ALR
第4门课程 - 音视频QoS: WebRTC抗抖动jitterbuffer技术深入剖析和实现

音视频QoS: WebRTC抗抖动jitterbuffer技术深入剖析和实现

-节

-小时

c++

入门

课程节数 课程时长 语言 课程难度

进入学习

课程价值和收获

  • WebRTC jitterbuffer总体框架
  • WebRTC视频组帧
  • WebRTC视频解码框架
  • 卡尔曼滤波核心思想及其运用
  • 卡尔曼滤波计算帧最优到达时间
  • 卡尔曼滤波预测抖动延迟

技能标签

  • 组帧
  • P帧/I帧/GOP
  • jitterbuffer
  • 卡尔曼滤波
  • ffmpeg解码