百万级高并发WebRTC流媒体服务器设计与开发1
【课程介绍】5G时代音视频为王,随着实时音视频应用的爆发,来自Google 的WebRTC成为了人们关注的焦点,但很多人却不知道如何使用WebRTC实现多人实时互动,本课就将围绕与浏览器互通、级联、可扩展等6大痛点手把手带你学习大负载、高并发、高性能 WebRTC 流媒体服务器的设计与开发,揭秘万人互动直播背后的深层奥秘,打造可负载百万用户量的企业级的流媒体服务器
【课程目录】
- 第1章 课程导学与准备工作本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获。之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议。希望大家都能通过这门课程,学有所成,学有所归。
- 1-1 课前必读(不看会错过一个亿)
- 1-2 导学
- 第2章 C++语言基础回顾【已掌握,可略过】为了便于大家更好的学习流媒体服务器的开发,本章将带大家对WebRTC服务器开发中用到的C++基础知识进行回顾梳理,如类的定义与使用,继承,多态,名存空间等相关知识。
- 2-1 C++知识回顾之helloworld
- 2-2 类的定义和实现
- 2-3 类的使用
- 2-4 命名空间
- 2-5 继承1
- 2-6 继承2
- 2-7 多态
- 2-8 内存地址空间与指针
- 2-9 堆空间与栈空间
- 2-10 深拷贝与浅拷贝
- 第3章 服务器基础编程本章将带你学习最基础的服务器开发,让你体会服务器开发其实如此简单。
- 3-1 一个最简单的服务器
- 3-2 Linux系统下的信号
- 3-3 几个重要的信号
- 3-4 信号的发送与处理
- 3-5 通过 sigaction 安装信号
- 3-6 以fork的方式创建后台进程
- 3-7 以daemon方式切换到后台
- 3-1 一个最简单的服务器
- 第4章 网络编程基础本章将带你了解如何在服务端开发网络服务器程序。
- 4-1 TCPServer实现原理
- 4-2 TCPServer的实现1
- 4-3 TCPServer的实现2
- 4-4 TCP客户端的实现
- 4-5 作业-UDP服务端与客户端的实现
- 4-6 作业-实现一个TCP/UDP网络服务器
- 第5章 异步I/O事件处理本章将带你掌握异步IO事件处理原理。
- 5-1 通过fork的方式实现高性能网络服务器
- 5-2 通过select实现高性能服务器
- 5-3 再论select函数
- 第6章 epoll实现高性能服务器本章将带你学习Linux下最高效的异步IO事件处理函数epoll的使用。
- 6-1 epoll基本知识
- 6-2 epoll高性能服务器的实现1
- 6-3 epoll高性能服务器的实现2
- 6-4 epoll+fork进行性能优化
- 第7章 libevent实现高性能网络服务器本章将带你了解几个比较著名的开源事件处理库,epoll使用起来比较复杂,很多开源项目对epoll进行了封装,如libevent、libuv等,本章还会传授你如何提高开发网络异步IO服务器的效率。
- 7-1 比较有名的异步IO处理库的介绍
- 7-2 libevent实现高性能服务器
- 7-3 作业-libuv实现对UDP的处理
- 第8章 TCP/IP详解本章将带你深入TCP/IP原理,对TCP协议、TCP三次握手、TCP四次挥手、UDP与RTP等核心内容做深入剖析。
- 8-1 IP协议详解
- 8-2 TCP协议详解
- 8-3 TCP三次握手
- 8-4 TCP四次挥手
- 8-5 TCP_ACK_机制
- 8-6 TCP滑动窗口
- 8-7 UDP与RTP
- 8-8 实时通信TCP_UDP的选择
- 8-9 TCP在实时通信中的作用
- 第9章 UDP/RTP/RTCP 详解本章将对UDP/RTP做深入讲解,重点带大家学习RTCP协议中的各个报文。
- 9-1 RTP包的使用
- 9-2 RTCP协议头的分析
- 9-3 RTCP PayloadType 介绍
- 9-4 RTCP SR 包文详解
- 9-5 RTCP RR SDES 报文介绍
- 9-6 BYE APP 报文介绍
- 9-7 RTCP FB 协议介绍
- 第10章 WebRTC协议本章带你学习在多方通信时,该如何保障音视频的服务质量,一是从网络上如何进行优化,如防拥塞,流控,防抖动等;二是在音视频内容上如何进行优化,如SVC,多流,动态码率等。
- 10-1 STUN协议介绍
- 10-2 STUN Message Type消息
- 10-3 STUN Message type详解
- 10-4 STUN body详解
- 10-5 ICE工作原理
- 10-6 加密解密基本概念
- 10-7 OpenSSL概念及使用
- 10-8 DTLS协议详解
- 10-9 TLS-SRTP协议讲解
- 第11章 SDP协议与WebRTC媒体协商【需花大力气牢牢掌握】SDP协议与媒体协商是WebRTC中的核心,同时也是 WebRTC的核心,本章将带你真正理解 WebRTC流媒体服务器是如何将多人联系到一起的。
- 11-1 媒体协商过程
- 11-2 SDP协议简介
- 11-3 SDP描述信息
- 11-4 SDP关键字段的含义及其使用
- 11-5 WebRTC中的SDP
- 11-6 WebRTC中SDP各字段含义详解
- 第12章 各流媒体服务器的比较本章将介绍几种多方通信的架构模型,以及比较有名的开源项目的优劣情况,并传授大家如何选择出最适自己或适合团队的开源项目。
- 12-1 多人互动架构方案
- 12-2 Mesh架构模型详解
- 12-3 MCU架构模型详解
- 12-4 SFU架构模型详解
- 12-5 Licode流媒体服务器架构和特点
- 12-6 Janus流媒体服务器的架构及特点
- 12-7 Medooze流媒体服务器架构及特点
- 12-8 Mediasoup流媒体服务器架构及特点
- 第13章 mediasoup服务器的布署与使用本章将带你了解一个真正的多方通信是如何搭建起来的。
- 13-1 Mediasoup的运行环境
- 13-2 Mediasoup Demo的布署
- 13-3 通过Nodejs实现HTTP服务
- 13-4 HTTPS基本知识
- 13-5 通过WWW服务发布mediasoup客户端代码
- 13-6 作业-客户端是如何与信令服务建立连接的
- 第14章 mediasoup的信令系统本章将讲解如何实现流媒体服务器的信令系统,以及信令与数据转发之间是如何进行配合的。一般信令系统都是整个系统的灵魂,知道了信令的运转就撑握了系统的脉落,这样就能很轻松的知道Mediasoup的运行逻辑了。
- 14-1 mediasoup-demo整体分析
- 14-2 JavaScript基本语法一
- 14-3 JavaScript基本语法二
- 14-4 JavaScriptES6高级特性
- 14-5 Promise与EventEmitter详解
- 14-6 剖析serverjs
- 14-7 剖析roomjs
- 14-8 如何调试MediasoupDemo
- 14-9 运行时查看Mediasoup的核心信息
- 第15章 mediasoup源码分析本章将带你详细了解Mediasoup是如何设计的,它又是如何达到高可用,可扩展的,性能是如何优化的,本章你将不仅领略到高性能流媒体服务器的设计精髓, 知道好的架构设计是如何的优美,也会知道所有高性能服务器的实现都是每个细微处的不断打磨才造就出来的。…
- 15-1 mediasoup库的架构讲解
- 15-2 Mediasoup_JS_的作用
- 15-3 WebRTC中的C++类关系图
- 15-4 Mediasoup启动详解
- 15-5 匿名管道进程间通信的原理
- 15-6 实战通过socketpair进行进程间通信
- 15-7 mediasoup下channel创建的详细过程
- 15-8 mediasoup中的消息确信与发送事件机制
- 15-9 mediasoup的主业务流程1
- 15-10 mediasoup的主业务流程2
- 15-11 mediasoup连接的创建1
- 15-12 mediasoup连接的创建2
- 15-13 mediasoup数据流转1
- 15-14 mediasoup数据流转2
- 15-15 WebRTC流媒体服务器大规模布署方案
- 第16章 课程总结本章将带领大家全面总结梳理本门课程的思想和核心技术。
- 16-1 小结