一、概述
Mediasoup
主要提供了 3 个库和 1 个 demo。
库名 | 说明 |
---|---|
mediasoup | 主要包含三部分。一是 worker 可执行程序,由 C++ 实现,是本系列分析的重点;二是 Node 库,由 TypeScript 实现;三是 Rust 库,和 Node 的主要不同在于它没有以进程方式而是以静态库方式使用 mediasoup-worker。 |
mediasoup-client | Web 客户端库。TypeScript 实现。 |
libmediasoupclient | Native 客户端库。C++ 实现。 |
mediasoup-demo | 官方 Demo。 |
Examples | 各种示例。 |
网络上对 mediasoup 的 Node.js
层——准确说是对官方的 mediasoup-demo
的源码分析比较多,对于 mediasoup-client
和 mediasoup-worker
(之后简 worker) 等的源码详细分析相对较少。本人之前有将 GB28281
集成进 mediasoup 的想法并验证了可行性,以及使用 .Net
重新实现过 Node.js 层(含 mediasoup-client 和 mediasoup-demo),对 worker 的源码进行过比较粗略地浏览。最近基于想要弥补一些比较模糊的认知,并且 mediaoup 本身也在进化,故就再做了一次源码的梳理。
至于 mediasoup 是什么、能做什么、与其他 SFU 相较而言的优缺点、Demo 如何运行、为什么不用单一语言来实现等等讨论不是本系列关注的重点。