收藏

WebRTC源码级深度解析,进阶大厂高级音视频开发者

音视频领域资深讲师授课,带你领略优秀开源库精妙所在

WebRTC源码级深度解析,进阶大厂高级音视频开发者

¥499.00
难度 高级 时长 30小时 学习人数 454 综合评分 9.94
  • 第1章 课程介绍与学习指南 2 节 | 23分钟

    本章主要对整体课程进行介绍,以及学习方法的指导。

    收起列表

    • 图文: 1-1 -课前必读((不看会错过一个亿))
    • 视频: 1-2 WebRTC源码剖析课程导学 (22:05) 试看
  • 第2章 WebRTC的整体架构 7 节 | 64分钟

    通过本章内容可以掌握 WebRTC 源码的整体框架,简要概述一下全章的内容

    收起列表

    • 视频: 2-1 WebRTC整体架构-如何对WebRTC源码进行分析(加片头) (04:14)
    • 视频: 2-2 音视频直播的由来 (09:24)
    • 视频: 2-3 直播技术的方向 (08:22)
    • 视频: 2-4 实时互动直播的难点 (12:07) 试看
    • 视频: 2-5 几个重要指标和评测方法 (11:41)
    • 视频: 2-6 为什么要使用WebRTC (08:52)
    • 视频: 2-7 WebRTC整体架构 (08:26)
  • 第3章 WebRTC源码分析环境的搭建 5 节 | 37分钟

    通过本章学习可以掌握如何编译WebRTC源码,并建立调试环境

    收起列表

    • 视频: 3-1 WebRTC开发环境搭建概述 (加片头) (03:59)
    • 视频: 3-2 获取WebRTC源码 (11:22)
    • 视频: 3-3 编译WebRTC的必备工具 (06:30)
    • 视频: 3-4 编译WebRTC源码 (09:18)
    • 视频: 3-5 WebRTC中的重要Demo (04:59)
  • 第4章 开启WebRTC源码分析之路 15 节 | 138分钟

    通过本章学习,主要掌握WebRTC对外提供了哪些接口,这些接口内部的实现逻辑。

    收起列表

    • 视频: 4-1 分析WebRTC必经之路章节概述 (1) (03:16)
    • 视频: 4-2 一对一实时通信架构 (07:19)
    • 视频: 4-3 peerconnection_client的构成 (06:50)
    • 视频: 4-4 几个重要的信令 (03:38)
    • 视频: 4-5 WebRTC中的媒体协商 (06:22)
    • 视频: 4-6 完美协商 (06:52)
    • 视频: 4-7 Windows窗口与消息 (09:27)
    • 视频: 4-8 实战-实现一个最简单的Windows应用程序 (06:48)
    • 视频: 4-9 peerconnection-client界面实现 (08:16)
    • 视频: 4-10 源码分析-client界面 (15:36)
    • 视频: 4-11 信令逻辑 (09:12)
    • 视频: 4-12 源码分析-信令的实现 (15:59)
    • 视频: 4-13 WebRTC-Native开发过程 (17:59)
    • 视频: 4-14 源码分析-媒体协商 (10:29)
    • 视频: 4-15 源码分析-视频渲染 (09:15)
  • 第5章 抓住WebRTC的脉络 (深入理解WebRTC的线程模型) 13 节 | 147分钟

    通过本章学习,主要掌握WebRTC的线程模型,它是如何使用多线程来提高效率的,这样使用线程的好处是什么。

    收起列表

    • 视频: 5-1 WebRTC线程模型概述 (05:48)
    • 视频: 5-2 线程基础知识 (09:32)
    • 视频: 5-3 常见的线程模型 (06:13)
    • 视频: 5-4 WebRTC中的线程 (12:13)
    • 视频: 5-5 WebRTC中的线程管理 (11:24)
    • 视频: 5-6 WebRTC三大线程 (11:44)
    • 视频: 5-7 WebRTC线程的启动与运行 (13:37)
    • 视频: 5-8 WebRTC事件处理基础知识 (13:02)
    • 视频: 5-9 WebRTC线程事件处理 (18:41)
    • 视频: 5-10 WebRTC接口宏 (09:55)
    • 视频: 5-11 WebRTC接口的设计原理 (10:06) 试看
    • 视频: 5-12 WebRTC接口调用过程 (16:28)
    • 视频: 5-13 Post方法进行线程切换 (08:15)
  • 第6章 开始“聊天”之前先认识一下 (WebRTC媒体协商) 15 节 | 219分钟

    通过本章主要掌握WebRTC底层到底是如何讨价还价的(协商的)。

    收起列表

    • 视频: 6-1 WebRTC媒体协商--综述 (06:18)
    • 视频: 6-2 SDP协议 (12:51)
    • 视频: 6-3 WebRTC中的SDP类结构 (11:51)
    • 视频: 6-4 如何生成SDP (11:33)
    • 视频: 6-5 编解码器信息的收集 (10:33)
    • 视频: 6-6 编解码器信息的收集之二 (26:26)
    • 视频: 6-7 源码分析-CreateOffer之一 (14:18)
    • 视频: 6-8 CreateOffer源码分析之二 (15:56)
    • 视频: 6-9 源码分析-SetLocalDescription之一 (21:04)
    • 视频: 6-10 源码分析-SetLocalDescription之二 (13:38)
    • 视频: 6-11 收集Candidate的过程 (13:28)
    • 视频: 6-12 生成SDP文本信息 (14:51)
    • 视频: 6-13 解析SDP文本信息 (11:46)
    • 视频: 6-14 源码分析-CreateAnswer (15:23)
    • 视频: 6-15 源码分析-SetRemoteDescription (18:32)
  • 第7章 音频数据采集 22 节 | 271分钟

    通过本章学习,主要掌握WebRTC是如何在不同的平台上采集音频数据的。

    收起列表

    • 视频: 7-1 音频数据采集与播放概述 (05:24)
    • 视频: 7-2 ADM的创建 (11:16)
    • 视频: 7-3 CoreAudio基本开概念 (11:46)
    • 视频: 7-4 CoreAudio-API (17:36)
    • 视频: 7-5 AudioDeviceWindowsCore的构造函数 (17:09)
    • 视频: 7-6 ADM初始化 (07:54)
    • 视频: 7-7 源码分析-ADM初始化之枚举音频设备 (18:18)
    • 视频: 7-8 ADM初始化之InitSpeaker (09:02)
    • 视频: 7-9 ADM初始化之设置通道数 (08:37)
    • 视频: 7-10 ADM初始化之InitMicrophone (07:06)
    • 视频: 7-11 AudioState (06:07)
    • 视频: 7-12 Engine_PeerConnection_Call等对象之间的关系 (13:21)
    • 视频: 7-13 打开播放设备 (09:34)
    • 视频: 7-14 InitPlay基础知识 (16:12)
    • 视频: 7-15 InitPlayout源码分析 (18:18)
    • 视频: 7-16 播放声音的基础API (09:16)
    • 视频: 7-17 播放声音的具体流程 (05:59)
    • 视频: 7-18 源码分析-StartPlayout (19:52)
    • 视频: 7-19 再论音频DMO (19:41)
    • 视频: 7-20 源码分析-InitRecording (20:08)
    • 视频: 7-21 StartRecording处理逻辑 (07:06)
    • 视频: 7-22 源码分析-StartRecording (10:54)
  • 第8章 视频数据采集 20 节 | 209分钟

    通过本章学习,主要掌握WebRTC是如何在不同的平台上采集视频数据的。

    收起列表

    • 视频: 8-1 视频采集概述 (03:30)
    • 视频: 8-2 DirectShow基础知识 (09:39)
    • 视频: 8-3 WebRTC视频采集整体架构 (05:37)
    • 视频: 8-4 视频处理流程的建立 (12:07)
    • 视频: 8-5 源码分析-视频处理流程的建立 (11:44)
    • 视频: 8-6 构造设备信息对象 (09:52)
    • 视频: 8-7 获音视频设备信息基础知识 (07:05)
    • 视频: 8-8 源码分析-获取视频设备信息 (07:21)
    • 视频: 8-9 创建并初始化VideoCapture (09:20)
    • 视频: 8-10 源码分析-构造并初始化VideoCapture (14:56)
    • 视频: 8-11 获取CaptureFilter (07:13)
    • 视频: 8-12 获取CaptureFilter的输出Pin (11:10)
    • 视频: 8-13 构造SinkFilter (13:11)
    • 视频: 8-14 源码分析-SinkFilter的构造 (07:08)
    • 视频: 8-15 获取SinkFilter的输入Pin (10:37)
    • 视频: 8-16 Filter之间的连接 (14:30)
    • 视频: 8-17 SetCameraOutput (14:49)
    • 视频: 8-18 源码分析-连接Filter(一) (17:41)
    • 视频: 8-19 源码分析-连接Filter(二) (12:00)
    • 视频: 8-20 输出采集后的视频数据 (08:59)
  • 第9章 音频引擎(音频编解码) 12 节 | 157分钟

    本章主要讲解除WebRTC如何选择不同的音频编解码器,如何利用选择好的编解除码器进行编解码的。

    收起列表

    • 视频: 9-1 音频引擎章节概述 (05:23)
    • 视频: 9-2 音频引擎架构 (12:43)
    • 视频: 9-3 创建音频引擎 (11:35)
    • 视频: 9-4 音频初始化之编解码器的收集 (11:39)
    • 视频: 9-5 音频初始化之AudioState对象的创建 (08:25)
    • 视频: 9-6 音频引擎初始化之获取音频数据 (13:47)
    • 视频: 9-7 Channel-Stream与编解码器 (14:54)
    • 视频: 9-8 创建音频编码器之一 (15:30)
    • 视频: 9-9 创建Opus编码器 (23:01)
    • 视频: 9-10 音频编码 (10:25)
    • 视频: 9-11 音频解码器的创建 (20:10)
    • 视频: 9-12 音频解码 (09:06)
  • 第10章 视频引擎(视频编解码) 18 节 | 184分钟

    本章主要讲解除WebRTC如何选择不同的视频编解码器,如何利用选择好的编解除码器进行编解码的。

    收起列表

    • 视频: 10-1 视频引擎章节概述 (06:49)
    • 视频: 10-2 视频数据采集的时间 (10:04)
    • 视频: 10-3 视频分发器VideoBroadcaster (13:51)
    • 视频: 10-4 视频数据是如何进入视频分发器的 (10:54)
    • 视频: 10-5 视频引擎及其作用 (13:05)
    • 视频: 10-6 -视频编码器的创建与视频编码流程 (09:10)
    • 视频: 10-7 -VideoStreamEncoder的创建 (09:27)
    • 视频: 10-8 -获取编解码器参数 (11:20)
    • 视频: 10-9 -应用视频编码参数 (15:50)
    • 视频: 10-10 -创建WebRtcVideoSendStream的时机 (05:48)
    • 视频: 10-11 -创建内部VideoSendStream (06:14)
    • 视频: 10-12 -VP8编码器的创建及编码 (09:27)
    • 视频: 10-13 -应用视频解码器参数 (12:00)
    • 视频: 10-14 -编解码器CodecID的设置 (08:24)
    • 视频: 10-15 -SessionDescription (15:05)
    • 视频: 10-16 -创建WebRtcVideoReceiveStream (06:20)
    • 视频: 10-17 -创建解码器及初始化 (10:48)
    • 视频: 10-18 -视频解码 (09:00)
  • 第11章 深入理解WebRTC网络传输 31 节 | 305分钟

    通过本章学习,主要掌握WebRTC是如何建立网络连接,如何选择最优质的连接点,如何进行数据加密,又是如何传输数据的。

    收起列表

    • 视频: 11-1 -深入理解WebRTC网络传输-概述 (04:09)
    • 视频: 11-2 -网络设备管理 (12:16)
    • 视频: 11-3 -读取网卡信息的重要API (18:11)
    • 视频: 11-4 -源码分析-CreateNetworks (18:45)
    • 视频: 11-5 -获了本地默认IP地址和端口 (11:18)
    • 视频: 11-6 -获取本地默认IP地址 (13:33)
    • 视频: 11-7 -ICE (14:14)
    • 视频: 11-8 -Candiate (09:11)
    • 视频: 11-9 -创建PortAllocator (15:05)
    • 视频: 11-10 -创建PortAllocatorSession (09:02)
    • 视频: 11-11 -创建AllocationSequence (10:31)
    • 视频: 11-12 -收集Candidate (12:39)
    • 视频: 11-13 -获取本地Canidadate (09:23)
    • 视频: 11-14 -STUN协议 (10:43)
    • 视频: 11-15 -发送StunBindingRequest消息 (10:31)
    • 视频: 11-16 -收集Srflx类型的Candidate (06:27)
    • 视频: 11-17 -TURN协议基本原理 (07:56)
    • 视频: 11-18 -TurnClient与TurnServer的连接过程 (09:32)
    • 视频: 11-19 -Turn协议数据传输机制 (09:41)
    • 视频: 11-20 -收集Turn类型Candidate(一) (07:10)
    • 视频: 11-21 -收集Turn类型Candidate(二) (06:32)
    • 视频: 11-22 -收集TCP类型的Candidate (05:28)
    • 视频: 11-23 -将获得的Candidate上抛给应用层 (07:13)
    • 视频: 11-24 -WebRTC网络连接的建立 (05:39)
    • 视频: 11-25 -Connection排序 (09:53)
    • 视频: 11-26 -选择Connection (09:44)
    • 视频: 11-27 -Connection的裁剪 (06:59)
    • 视频: 11-28 -ICE提名 (06:28)
    • 视频: 11-29 -ICE-FULL与ICE-LITE (04:50)
    • 视频: 11-30 -连通性检测 (11:35)
    • 视频: 11-31 -网络传输对象的创建与数据传输 (10:05)
  • 第12章 WebRTC服务质量(Qos) 32 节 | 317分钟

    通过本章学习,主要掌握WebRTC是如何提高服务质量的。如何在极端网络情况下还能何障服务质量。

    收起列表

    • 视频: 12-1 -WebRTC服务质量概述 (04:55)
    • 视频: 12-2 -WebRTC服务质量综述 (12:57)
    • 视频: 12-3 -RTP协议 (10:41)
    • 视频: 12-4 -RTP扩展头 (11:05)
    • 视频: 12-5 -RTCP协议一 (15:28)
    • 视频: 12-6 -RTCP协议二-SDES作用和报文件格式 (07:32)
    • 视频: 12-7 -RTCP协议三-其它类型的RTCP报文 (09:39)
    • 视频: 12-8 -RTCP协议四-CompoundRTCP (06:50)
    • 视频: 12-9 -丢包重传NACK与RTX (07:49)
    • 视频: 12-10 -判断包位置的关键算法 (07:57)
    • 视频: 12-11 -WebRTC中NACK的处理流程 (10:26)
    • 视频: 12-12 -判断是否丢包的逻辑 (12:00)
    • 视频: 12-13 -找到真正的丢包 (10:51)
    • 视频: 12-14 -VP8关键帧的判断 (14:47)
    • 视频: 12-15 -NACK格式 (05:51)
    • 视频: 12-16 -WebRTC接收NACK消息的过程 (10:17)
    • 视频: 12-17 -RTX协议 (12:19)
    • 视频: 12-18 -WebRTC发送RTX包的过程 (05:16)
    • 视频: 12-19 -Pacer (16:44)
    • 视频: 12-20 -RoundRobinPacketQueue (12:16)
    • 视频: 12-21 -IntervalBudget (12:34)
    • 视频: 12-22 -向Pacer中插入数据 (05:25)
    • 视频: 12-23 -JitterBuffer整体架构 (05:49)
    • 视频: 12-24 -PacketBuffer的实现 (12:45)
    • 视频: 12-25 -查找完整的帧 (11:08)
    • 视频: 12-26 -ReferenceFinder的作用及创建 (09:21)
    • 视频: 12-27 -查找参考帧 (08:59)
    • 视频: 12-28 -FrameBuffer (05:10)
    • 视频: 12-29 -FEC基础知识和原理 (13:00)
    • 视频: 12-30 -WebRTC中FEC的创建 (05:33)
    • 视频: 12-31 -为媒体包产生冗余数据 (10:27)
    • 视频: 12-32 -FEC保护因子的计算 (10:57)
  • 第13章 NetEQ 5 节 | 46分钟

    本章主要讲解NetEQ的内容,看它是如何对音频数据进行平滑处理的。

    收起列表

    • 视频: 13-1 -NetEq在WebRTC中的位置 (04:49)
    • 视频: 13-2 -抖动消除的基本原理 (08:48)
    • 视频: 13-3 -NetEq整体架构 (10:42)
    • 视频: 13-4 -NetEq中的几种缓冲区 (11:13)
    • 视频: 13-5 -新版NetEq中的MCU和DSP (09:35)
  • 第14章 Simulcast与SVC 6 节 | 71分钟

    本章主要掌握WebRTC与SFU服务器如何配合最终根据用户的带宽情况提供更好的服务的。

    收起列表

    • 视频: 14-1 -什么是Simulcast (09:57)
    • 视频: 14-2 -开启Simulcast的三种方法 (19:02)
    • 视频: 14-3 -Simulcast在WebRTC中的实现 (08:25)
    • 视频: 14-4 -什么是SVC (09:26)
    • 视频: 14-5 -WebRTC开启SVC的方式 (11:22)
    • 视频: 14-6 -VP9RTP包结构 (12:10)
  • 第15章 课程总结 1 节 | 14分钟

    课程总体内容总结

    收起列表

    • 视频: 15-1 -WebRTC深入剖析总结 (13:58)
本课程已完结

试看

全部试看小节



讲师

李超 全栈工程师

北京音视跳动首席架构师。拥有10多年的音视频实时互动直播研发经验,多年团队管理经验。参加并设计了多个高负载,大并发服务器架构。曾在全时云会议担任研发经理,带领团队研发同时进行10000场会议的音视频会议平台。曾在跟谁学团队担任直播研发高级经理,带领团队研发在线教育直播平台,同一教室内可支持上万人。

讲师其他课程

课程预览

检测到您还没有关注慕课网服务号,无法接收课程更新通知。请扫描二维码即可绑定
重新观看
意见反馈 帮助中心 APP下载
官方微信

学习咨询

选课、学习遇到问题?

扫码添加指导老师 1V1 帮助你!

添加后老师会第一时间解决你的问题