李超
本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获。之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议。希望大家都能通过这门课程,学有所成,学有所归。
为了便于大家更好的学习流媒体服务器的开发,本章将带大家对 WebRTC 服务器开发中用到的 C++基础知识进行回顾梳理,如类的定义与使用,继承,多态,名存空间等相关知识。
本章将带你学习最基础的服务器开发,让你体会服务器开发其实如此简单。
本章将带你了解如何在服务端开发网络服务器程序。
本章将带你掌握异步 IO 事件处理原理。
本章将带你学习 Linux 下最高效的异步 IO 事件处理函数 epoll 的使用。
本章将带你了解几个比较著名的开源事件处理库,epoll 使用起来比较复杂,很多开源项目对 epoll 进行了封装,如 libevent、libuv 等,本章还会传授你如何提高开发网络异步 IO 服务器的效率。
本章将带你深入 TCP/IP 原理,对 TCP 协议、TCP 三次握手、TCP 四次挥手、UDP 与 RTP 等核心内容做深入剖析。
本章将对 UDP/RTP 做深入讲解,重点带大家学习 RTCP 协议中的各个报文。
本章带你学习在多方通信时,该如何保障音视频的服务质量,一是从网络上如何进行优化,如防拥塞,流控,防抖动等;二是在音视频内容上如何进行优化,如 SVC,多流,动态码率等。
SDP 协议与媒体协商是 WebRTC 中的核心,同时也是 WebRTC 的核心,本章将带你真正理解 WebRTC 流媒体服务器是如何将多人联系到一起的。
本章将介绍几种多方通信的架构模型,以及比较有名的开源项目的优劣情况,并传授大家如何选择出最适自己或适合团队的开源项目。
- Mesh:p2p传输,多个视频流
- MCU(Multipoint Conferencing Unit):软件混流,一个视频流
- SFU(Selective Forwarding Unit):服务器直接转发,广泛使用
- Licode:
- Janus:
- Medooze:
- Mediasoup:
一对一的通信模型
- 采集
- 媒体协商
- 创建连接,p2p 穿越,绑定连接,信令传输,开始传输
Mesh通信模型
- 仅适合p2p,仅实验用
- 分层
- SVC:zoom
- MCU
- SFU
- C 语言底层,非epoll
- MCU/SFU
- poll
- 性能较高
- node.js 信令服务、c++媒体服务
- node.js 信令服务、单独的c++媒体服务(管道)
- epoll,多进程,性能设计合理
性能最好:8 Mediasoup
完备性:5 Licode
性能+完备性:6 Janus
MCU、SFU:7 Medooze
本章将带你了解一个真正的多方通信是如何搭建起来的。
本章将讲解如何实现流媒体服务器的信令系统,以及信令与数据转发之间是如何进行配合的。一般信令系统都是整个系统的灵魂,知道了信令的运转就撑握了系统的脉落,这样就能很轻松的知道 Mediasoup 的运行逻辑了。
本章将带你详细了解 Mediasoup 是如何设计的,它又是如何达到高可用,可扩展的,性能是如何优化的,本章你将不仅领略到高性能流媒体服务器的设计精髓, 知道好的架构设计是如何的优美,也会知道所有高性能服务器的实现都是每个细微处的不断打磨才造就出来的。...
本章将带领大家全面总结梳理本门课程的思想和核心技术。