本课程以共享桌面项目为驱动,以渐进迭代的授课方式,遵循RFC标准,深入解析STUN/TURN/DTLS/ICE/RTP/RTCP/SRTP/SRTCP等网络传输协议栈,手把手带你实现WebRTC P2P通信核心技术和ICE网络框架。教学过程中还会设计针对性实验,验证效果,让你学习顺畅,收获满满。希望通过本课程的学习,你能先人一步,突破瓶颈,顺利跨入音视频领域高手行列。

适合人群

对网络传输、高性能Linux后台服务感兴趣人群

想要提升实时音视频&WebRTC开发水平的

技术储备

具备C/C++/Java/GO等任意一门语言开发经验

熟悉Linux系统基本命令

环境参数

开发工具 Vim或者VsCode

操作系统 Linux,Ubuntu或Centos

技术栈 WetRTC推荐M96版

章节目录:

第1章 WebRTC实战后台服务-课程导学 试看2 节 | 20分钟

本章主要对课程整体内容进行全面的介绍,包括课程目标、课程优势、课程内容安排、适合人群、学习建议等。

收起列表

视频:

1-1 WebRTC后台服务--课程导学 (10:07)

试看

视频:

1-2 WebRTC后台服务--课程效果演示 (09:10)

试看

第2章 为什么要学习ICE技术(音视频SFU分发服务)?2 节 | 20分钟

本章主要介绍音视频分发服务应用的价值及适用性,强调其服务在领域的地位等。

收起列表

视频:

2-1 为什么要学习ICE技术 (15:12)

视频:

2-2 远程桌面共享在各领域的应用介绍 (04:28)

第3章 项目总体设计,掌握项目的总体设计及技术选型3 节 | 21分钟

本章主要介绍课程中项目的各项功能、架构设计、核心技术及流程,对整体系统的技术选型做详解分析。

收起列表

视频:

3-1 远程桌面共享项目概述 (06:21)

视频:

3-2 系统架构设计和核心流程 (06:31)

视频:

3-3 系统通信模型选型 (07:43)

第4章 WebRTC offer SDP深度解析和生成16 节 | 231分钟

本章深度讲解WebRTC SDP描述信息,帮助学员掌握不同属性字段的含义和作用,并能够在实际项目中灵活运用。

收起列表

视频:

4-1 本章导学 (02:44)

视频:

4-2 RTC流管理器设计 (18:42)

视频:

4-3 WebRTC SDP介绍 (05:21)

视频:

4-4 创建offer SDP(上) (12:41)

视频:

4-5 创建offer SDP(下) (13:14)

视频:

4-6 Offer中添加media content (17:49)

视频:

4-7 实现BUNDLE功能 (24:26)

视频:

4-8 offer中添加m行 (24:55)

视频:

4-9 Offer中添加codec (08:26)

视频:

4-10 Offer中添加codec参数 (15:50)

视频:

4-11 Offer中添加rtcp-mux和传输方向 (15:11)

视频:

4-12 认识ice-ufrag和ice-pwd (09:24)

视频:

4-13 Offer中添加ice-ufrag和ice-pwd (21:50)

视频:

4-14 生成自签名证书 (15:30)

视频:

4-15 Offer中添加fingerprint (16:21)

视频:

4-16 Offer中添加setup (07:40)

第5章 ICE运行框架总体介绍,掌握ICE总体运行框架以及核心API的设计方法6 节 | 63分钟

本章重点介绍ICE运行框架以及核心接口的设计,帮助学员掌握ICE的核心流程和重要接口。

收起列表

视频:

5-1 本章导学 (01:31)

视频:

5-2 ICE运行框架和candidate分类 (11:26)

视频:

5-3 设计和实现IceAgent(一) (12:01)

视频:

5-4 设计和实现IceAgent(二) (14:27)

视频:

5-5 实现SetLocalSDP(一) (16:22)

视频:

5-6 实现SetLocalSDP(二) (06:39)

第6章 ICE candidate的搜集、构成和优先级计算方法12 节 | 182分钟

本章重点介绍ICE的candidate搜集,以及candidate结构解析,帮助学员掌握candidate的搜集和实现方法。

收起列表

视频:

6-1 本章导学 (02:19)

视频:

6-2 实现NetworkManager (16:09)

视频:

6-3 获取可用的本地网络接口 (16:26)

视频:

6-4 封装PortAllocator类 (19:45)

视频:

6-5 开始收集本地candidate (14:31)

视频:

6-6 创建UDPPort类 (12:49)

视频:

6-7 分配UDP端口 (15:24)

视频:

6-8 准备socket address (15:03)

视频:

6-9 ICE candidate的构成解析 (13:00)

视频:

6-10 创建ICE local candidate (18:08)

视频:

6-11 实现candidate收集完成信号通知(一) (19:30)

视频:

6-12 实现candidate收集完成信号通知(二) (18:56)

第7章 远程桌面共享SFU服务之推流实现,掌握SFU服务推流功能的实现逻辑11 节 | 188分钟

本章重点讲解远程桌面共享SFU服务推流功能的实现,主要包括offer和answer的处理、ICE参数的解析和处理、UDP网络数据包的读取等内容

收起列表

视频:

7-1 推流端peerconnection设置offer.mp4_音频 (17:21)

视频:

7-2 推流端生成answer并发送给服务端 (20:18)

视频:

7-3 信令服务处理answer请求 (11:41)

视频:

7-4 分发服务信令worker异步处理answer (20:23)

视频:

7-5 分发服务rtc worker处理answer (16:02)

视频:

7-6 解析answer sdp (21:49)

视频:

7-7 从sdp中解析传输相关的信息 (19:41)

视频:

7-8 实现SetRemoteSDP(一) (13:11)

视频:

7-9 实现SetRemoteSDP(二) (11:37)

视频:

7-10 UDP网络数据包读取(一) (17:55)

视频:

7-11 UDP网络数据包读取(二) (17:23)

第8章 ICE之STUN协议深入解析和实现27 节 | 455分钟

本章结合RFC标准,重点讲解STUN协议规范,并实现STUN消息和各类属性字段的读写功能。

收起列表

视频:

8-1 本章导学 (02:06)

视频:

8-2 STUN协议详解 (14:35)

视频:

8-3 验证stun消息的指纹(一) (21:01)

视频:

8-4 验证stun消息的指纹(二) (12:54)

视频:

8-5 stun消息头部读取 (13:34)

视频:

8-6 stun消息属性读取 (15:46)

视频:

8-7 stun字符串属性类型的读取(一) (10:01)

视频:

8-8 stun字符串属性类型的读取(二) (17:18)

视频:

8-9 解析并验证USERNAME属性 (15:28)

视频:

8-10 解析并验证MI属性(一) (19:14)

视频:

8-11 解析并验证MI属性(二) (19:25)

视频:

8-12 stun绑定请求的异常处理 (15:45)

视频:

8-13 解析PRIORITY属性 (09:10)

视频:

8-14 创建peer反射candidate (20:14)

视频:

8-15 创建IceConnection类 (24:14)

视频:

8-16 构造stun绑定请求响应(一) (22:59)

视频:

8-17 构造stun绑定请求响应(二) (22:59)

视频:

8-18 stun响应消息添加MI属性 (21:06)

视频:

8-19 计算stun响应消息的MI值 (09:48)

视频:

8-20 stun消息IP属性的读写 (23:14)

视频:

8-21 添加指纹属性 (05:20)

视频:

8-22 发送binding响应 (23:28)

视频:

8-23 UDP数据包的高性能发送(一) (24:37)

视频:

8-24 UDP数据包的高性能发送(二) (20:29)

视频:

8-25 ICE通道的保活 (17:09)

视频:

8-26 stun错误响应消息(一) (16:25)

视频:

8-27 stun错误响应消息(二) (15:51)

第9章 ICE之连通性检查,掌握ICE的连通性检查策略、周期控制7 节 | 121分钟

本章重点讲解ICE连通性检查的方法,包括优先级计算、ping周期,以及ping的构造。

收起列表

视频:

9-1 实现服务侧的ICE连通性检查(一) (26:30)

视频:

9-2 实现服务侧的ICE连通性检查(二) (11:22)

视频:

9-3 如何设置ICE通道的ping周期 (22:09)

视频:

9-4 如何设置ICE连接的ping优先级(一) (17:08)

视频:

9-5 如何设置ICE连接的ping优先级(二) (14:32)

视频:

9-6 选择一个连接执行ping检查 (11:47)

视频:

9-7 构造stun绑定请求 (16:48)

第10章 ICE的提名机制、连接的选取、切换、保活策略14 节 | 250分钟

本章重点讲解ICE的提名机制,以及ICE连接的选取、切换、保活策略,并计算ICE的状态。

收起列表

视频:

10-1 ICE普通提名和激进提名 (11:07)

视频:

10-2 激进提名实现 (22:40)

视频:

10-3 发送ping请求 (18:30)

视频:

10-4 处理stun的响应 (18:01)

视频:

10-5 计算RTT并输出到log.mp4 (12:59)

视频:

10-6 更新ICE连接的读写状态.mp4 (13:43)

视频:

10-7 实现选中连接的切换策略.mp4 (14:28)

视频:

10-8 切换策略考虑连接的优先级 (13:27)

视频:

10-9 开始切换选中的连接 (24:50)

视频:

10-10 处理stun错误响应 (23:59)

视频:

10-11 设置candidate pair状态 (26:24)

视频:

10-12 处理ICE的ping周期问题 (17:02)

视频:

10-13 实现ICE连接探活机制 (23:15)

视频:

10-14 更新ICE传输通道的状态 (09:25)

第11章 WebRTC DTLS剖析和实现,掌握DTLS协议及握手流程,实现数据包的读写19 节 | 294分钟

本章重点讲解DTLS协议以及握手流程并实现,同时根据ICE状态和DTLS状态综合计算peerconnection的状态。

收起列表

视频:

11-1 DTLS握手流程详解 (07:36)

视频:

11-2 封装DtlsTransport类 (15:28)

视频:

11-3 缓存ClientHello包 (14:18)

视频:

11-4 安装DTLS (16:45)

视频:

11-5 设置本地证书 (06:27)

视频:

11-6 设置远端指纹 (17:39)

视频:

11-7 启动DTLS (13:56)

视频:

11-8 DTLS数据包读取 (24:33)

视频:

11-9 DTLS数据包写入 (15:09)

视频:

11-10 设置DTLS-SRTP密码套件 (23:06)

视频:

11-11 设置DtlsTransport的状态 (18:34)

视频:

11-12 设置DtlsTransport的接收状态 (07:42)

视频:

11-13 计算PeerConnection的状态.mp4 (16:51)

视频:

11-14 计算ICE传输通道的状态 (10:15)

视频:

11-15 计算IceAgent的状态.mp4 (12:25)

视频:

11-16 联合ICE和DTLS状态计算pc状态(一) (10:57)

视频:

11-17 联合ICE和DTLS状态计算pc状态(二) (19:14)

视频:

11-18 peer建连失败下的资源清理(一) (19:53)

视频:

11-19 peer建连失败下的资源清理(二) (22:37)

第12章 远程桌面共享SFU服务之拉流实现,掌握SFU服务拉流功能的实现9 节 | 120分钟

本章重点讲解远程桌面共享SFU服务拉流功能并实现,主要包括音视频转发架构的设计、ssrc的解析和设置、音视频track的创建和设置等内容。

收起列表

视频:

12-1 远程桌面共享拉流端UI设计 (12:47)

视频:

12-2 拉流命令处理.mp4 (14:59)

视频:

12-3 音视频转发方案设计 (12:22)

视频:

12-4 解析推流stream中的ssrc (25:46)

视频:

12-5 解析ssrc group信息 (15:43)

视频:

12-6 创建音视频track (12:08)

视频:

12-7 现PushStream获取音视频源的方法 (06:41)

视频:

12-8 实现PullStream设置音视频源的方法 (06:44)

视频:

12-9 offer SDP中增加ssrc描述信息 (12:03)

第13章 RTP/RTCP包的加密和解密,掌握利用libsrtp库加密和解密音视频数据包17 节 | 236分钟

本章重点讲解RTP/RTCP数据包的加密和解密方法并实现,掌握libsrtp库的初始化、安装、使用以及重点注意事项。

收起列表

视频:

13-1 创建DtlsSrtpTransport (13:12)

视频:

13-2 从DTLS中导出服务端和客户端秘 (28:38)

视频:

13-3 创建SrtpSession并设置参数 (15:49)

视频:

13-4 引入libsrtp库 (11:08)

视频:

13-5 初始化libsrtp库 (09:29)

视频:

13-6 创建或者更新srtp上下文结构 (18:33)

视频:

13-7 实现set_recv和update_recv方法 (09:00)

视频:

13-8 安装DTLS-SRTP (13:02)

视频:

13-9 解复用rtp和rtcp包 (10:43)

视频:

13-10 实现rtp和rtcp包的判断方法 (08:30)

视频:

13-11 rtp数据包解密 (19:55)

视频:

13-12 rtcp数据包解密 (08:49)

视频:

13-13 RtcStream获取rtp和rtcp数据包 (15:21)

视频:

13-14 转发rtp数据包.mp4 (13:52)

视频:

13-15 实现srtp数据包发送.mp4 (12:50)

视频:

13-16 加密rtp数据包 (12:24)

视频:

13-17 加密rtcp数据包并发送 (13:56)

第14章 远程桌面共享SFU服务停止推拉流和资源清理6 节 | 64分钟

总结回顾,本章会带领大家,从全局视角来回顾一下整个项目的系统架构和核心技术,主要包括WebRTC信令交换的设计与实现、ICE运行框架的设计与实现、音视频分发架构的设计与实现,帮助大家对整个项目有一个整体的认识。

收起列表

视频:

14-1 实现信令服务停止推流 (13:50)

视频:

14-2 实现分发服务停止推流 (12:16)

视频:

14-3 实现信令服务停止拉流 (06:39)

视频:

14-4 实现分发服务停止拉流 (07:55)

视频:

14-5 异常处理和项目完善(一) (12:24)

视频:

14-6 异常处理和项目完善(二) (10:25)

第15章 WebRTC实战后台服务-课程总结1 节 | 11分钟

本章主要对课程进行整体内容的总结,对课程中涉及到的知识点进行梳理,总结重难点内容,帮助你大家达到更好的学习效果

收起列表

视频:

15-1 课程回顾与总结 (10:54)

本课程已完结

历史上的今天
05月
22
    抱歉,历史上的今天作者很懒,什么都没写!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。