流媒体服务器(17)—— 流媒体开源服务 MediaSoup 初识

article/2025/10/19 16:51:52

目录

前言

正文

一、简单介绍

二、关键特色

1. 超强 SFU 功能

2. Node.js 模块

3. 客户端 SDK

三、架构组成

1. 关键实例

2. 重要模块

四、发展现状


https://liuzhen.blog.csdn.net/article/details/115603863https://liuzhen.blog.csdn.net/article/details/115603863

前言

最近收看了一期微软(中国)关于云原生、大数据、AI 领域的开源服务创新的线上圆桌论坛,感觉收获颇丰。众所周知,随着云原生、大数据和 AI 领域的快速发展,各领域之间的技术融合和相互驱动也越来越明显,开源服务无疑是其中最核心的组件。

正文

本次圆桌论坛邀请了三位技术大咖,其中一位是百家云集团流媒体高级研发工程师 ,刘振老师。刘老师是一位优秀的音视频专家,在公司主要负责音视频 QoE 相关的研发工作。他分享中介绍到了一个云原生应用——开源流媒体服务 MediaSoup ,今天主要就给大家科普一下 MediaSoup。

一、简单介绍

Mediasoup 官网对其的定位和评价还是非常高的:Cutting Edge WebRTC Video Conferencing,意思是顶尖的 WebRTC 视频会议产品。

官网地址:https://mediasoup.org/

仓库地址:https://github.com/versatica

二、关键特色

1. 超强 SFU 功能

凭借丰富的功能和灵活性,SFU 模式广泛应用在多方会议或者类似场景,正在逐步取代更加消耗资源的 MCU 模式。

2. Node.js 模块

Mediasoup 并不是创建了一个固定的单体服务,而是一个 Node.js 模块,可以集成到更大的应用程序中,也可以独立运行,具备非常灵活的移植能力。

3. 客户端 SDK

Mediasoup 还提供了强大的 JS SDK,通过统一的 API 接口可以在任意浏览器上非常简单的构建出视频会议应用。

三、架构组成

Mediasoup 有一张非常经典的架构图,如下图所示:

1. 关键实例

上图涉及了三个关键实例,分别是 Worker、Router、Transport。其中,一个 Worker 代表一个运行在单核 CPU 上并处理 Router 实例的 MediaSoup C++ 子进程;Router 的作用是用于注入、选择和转发通过 Transport 实例创建的媒体流,包括音频流、视频流;Transport 是客户端与 MediaSoup Router 连接的桥梁,并通过在其上创建的 Producer 和 Consumer 实例实现双向媒体传输。

主要包括 4 种 Transport:WebRtcTransport、PlainRtpTransport、PipeTransport、DirectTransport。其中,WebRtcTransport 主要用于浏览器之间的或者浏览器与其他终端进行通讯的,这种传输数据一般是进行加密的,为了保证数据安全,它有很多安全机制,安全机制较为复杂;PlainRtpTransport 用于普通或者自定义的 RTP 数据传输;PipeTransport 用于不同 Worker 的 Router 之间的数据传输;DirectTransport 用于 JS 层与底层 Worker 之间的信令和数据交互。

2. 重要模块

但是,这张图主要描述了媒体数据在服务器侧的流转过程,没有更好体现出 WebRTC C/S 架构的特点,因此,自己更喜欢网上的这张图,它让 PeerConnection 与 Consumer 和 Producer 的关系更加明确。

 在上图中,每个 WebRTC 客户端 Client 都会创建两个 Peerconnection,分别用于发送和接受媒体流,发送 PC 用于发送 LocalStream,其中包含了本地的 VideoTrack 和 AudioTrack,接收 PC 用来接受来自其他 Client 的 RemoteStream。同时,Room 会在流媒体服务器侧为每个 Client 创建一个 Peer,Peer 管理两个 Transport 用于接受 Client 的媒体流和向 Client 发送媒体流。

接下来,介绍一下 Peer 的作用。Peer 为对应的 Client 发送的 VideoTrack 和 AudioTrack 分别创建一个 Producer(一共是2个),Peer 也会为 Client 接收的 VideoTrack 和 AudioTrack 分别创建一个 Consumer(一共是2个)。其中,Producer 将媒体数据发送给每一个订阅者 Consumer,Consumer 表示一个被 MediaSoup Router 转发到客户端的音频流或者视频流。

下面再详细的介绍一下 Consumer,Consumer 根据功能划分可以分为四种,分别是 SimpleConsumer、PipeConsumer、SvcConsumer、SimulcastConsumer。其中,SimpleConsumer 是普通 RTP 数据的消费者,是一种最简单的 Consumer,音视频和视频流的都一样,没有类型区分;PipeConsumer 是不同 Worker 的 Router 之间的数据流转,表示接收或者消费从另外一个 Worker 中的 Router 传过来的数据;SvcConsumer 是处理和消费多层数据,传输时一般分为3层(核心层、拓展层、边缘层);SimulcastConsumer 是处理大小流的媒体数据。

四、发展现状

目前看来,MediaSoup 是一个很有前途的项目。最近几年,使用 MediaSoup 的用户数量正在快速增长,而且 Kurento 技术团队自己也开始使用 MediaSoup 代替自己原来的架构方案,貌似也为我们指明了方向,哈哈,技术方案没有绝对,具体因人而异,因公司而不同。通过对 MediaSoup 的了解,发现其设计巧妙,扩展性强,非常推荐大家把它作为云原生领域的流媒体服务器。


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一名典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解。同时也是 CSDN 博客专家(博客之星)、华为云享专家(共创编辑、十佳博主)、51CTO社区编辑、InfoQ 签约作者,欢迎关注我分享更多干货!😄


http://chatgpt.dhexx.cn/article/swn0uJMt.shtml

相关文章

最新有效的rtsp流媒体测试地址

以下发布的地址经测试有效地址 发布时间 2022年8月15日10:26:24 提示:地址如果失效请大家提醒会及时更新 rtsp地址:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 2023-6-30 测试已失效 rtmp地址:rtmp://ns8.indexforce…

流媒体服务器EasyNVR怎样获取视频流的播放地址?

很多用户要求在视频直播的过程中,直播画面或者链接是可以进行分享的,以便更多的人能够看到,这一项要求被运用在很多监管平台当中。 在我们的流媒体服务器EasyNVR中可以通过多种方式获得播放地址,本文就为大家介绍三种获取播放地址…

VS2010安装

使用的电脑为Win10 64位,这是使用的VS2010: 链接:https://pan.baidu.com/s/1JV3zpoahAPTezE06dB2gEw 提取码:gty8 1、下载后点击【setup.exe】,安装VS2010; 2、点击【安装VS2010】 ; 3、这里…

Visual Studio 2010 下载及安装方法(图文解说)

Visual Studio 2010 下载及安装方法(图文解说) 2012-02-22 11:16:38| 分类: VC程序设计 | 标签: |字号大中小 订阅 http://blog.sina.com.cn/s/blog_5feacbdf0100iiu4.html 在2010年的4月21日,微软官方发布了一…

Win10环境下VS2003安装教程

1、将下图红色框里的两个文件里的内容拷贝到一个新的文件夹中,遇到相同文件直接替换即可; 双击下图红色框中文件后关闭(为后面步骤使用) 2、打开拷贝后的文件夹,找到setup.exe双击打开; 3、VS.NET第一部…

Visual Studio2015专业版安装教程

Win7系统下安装: 参考链接:https://blog.csdn.net/j879159541/article/details/93461358 不需要VS2015的全部组件,只需要与C/C相关的组件,这里只选择了“Visual C”。 等待安装完成即可。

VS2010详细安装步骤

VS2010安装步骤 为了满足不同需求的用户,VS2010 又被细分成了五个版本,分别是专业版(Professional)、高级版(Premium)、旗舰版(Ultimate)、学习版(Express)和测试版(Test) 其中: 学习版是免费的,功能也相对简单,主要供…

VS 2017安装教程

1、首先下载安装包,地址是:https://www.microsoft.com/zh-cn/download/,进入首页后选择开发人员工具,进入开发人员工具后即可下载VS,VS有三个版本,分别是社区版、专业版、企业版。我选择的是社区版。点击下…

VS2015安装

计算机配置: i7 win7 sp1 vs2010; VS2015安装过程中,首先在安装.net的时候很慢,全部安装完成2小时左右; 如果安装过程顺利就安装完成了,但是我安装后提示一些组件安装错误,重新安装依然错误…

Visual studio 2015(VS2015)的下载和安装,以及安装VS2015中的C++

主要内容如下: 1. VS2015下载 2. VS2015安装 3. VS2015安装C的内容 作者:大曲曲 邮箱:xiaoxia.qufoxmail.com 本文最终目标:要实现VS2015QT5OpenCV3开发环境搭建 1. VS2015下载 Visual studio官方网站:https://www.vi…

Visual Studio系列 Visual Studio2010安装教程

目前微软官网上面好像是只有最新版的Visual Studio 2019了,一般现在新买的电脑上面可能会附带着该年最新版的Visual Studio,如果没有的话,你也可以要求他帮你安装激活好。毕竟如果你要是想买正版软件的话,其实也挺贵的&#xff0c…

VS2010的详细安装

Microsoft Visual Studio2010旗舰版的详细安装。 安装包:链接: https://pan.baidu.com/s/1-JNyGhwIvasAYQL0GsmzQw 密码: fdds step 1、拷贝或下载的安装包(Microsoft Visual Studio2010.rar)放在E盘(最好不要放在C盘&#xff0…

Visual Studio 2013安装教程

一、下载地址 http://download.microsoft.com/download/9/3/E/93EA27FF-DB02-4822-8771-DCA0238957E9/vs2013.5_ult_chs.iso?typeISO 此版本为旗舰版,大小5.18G,其他版本请自行去官网下载。 下载完成后,虽然下载的文件采用ios格式&#xf…

VS2013安装教程

1. 下载好安装包,解压文件 2.选中如图exe文件,右键选择管理员方式打开 3更改一下安装路径,这里尽量避免在c盘上安装,我装在自己电脑d盘: 4安装完后的结果如下,不用在意,继续点击启动->以后再…

【VS2010安装教程】

【VS2010安装教程】 Microsoft Visual Studio2010旗舰版的详细安装。 下载链接: 链接: https://pan.baidu.com/s/1-kK1mf2DOFMypOLJqB4H0Q提取码: j6ke 下载vs2010安装包。 拷贝或下载的安装包(VS2010(64&32bit).zip&…

1.3 VS2015安装教程

学校作业,被逼无奈 勿喷 在 Windows 7 以上的操作系统中要求必须具备管理员权限才能安装 .NET Framework 框架。此外,在 Windows 7 系统上安装 .NET Framework 需要操作系统有 SP1 补丁。目前,.NET Framework 仅支持在 Windows 操作系统上安…

VS2015安装教程

1.vs2015下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/ 下载完后解压软件后以管理员身份运行右图的文件: 2.开始安装后,会出现等待界面(可能需要几分钟)。 3. 初始化安装程序 4.如果你的计算机配置…

Visual Studio2012 安装教程

Visual Studio2012 安装教程 visual studio 2012如何安装? 这里http://链接:https://pan.baidu.com/s/1-xnB2ITm9qLTNxa1YAtZKA?pwd1234 1.下载VS2012中文版软件包,然后鼠标右键解压到“Visual studio 2012” 2.双击打开Visual Studio 2012简体中文旗…

Visual Studio2010安装教程

Visual Studio2010安装教程 [软件名称]:Visual Studio2010 [软件语言]:简体中文 [软件大小]:2.45G [安装环境]:Win10/Win8/Win7 [下载链接]: https://pan.baidu.com/s/1-2pnqQhagGXyhR41i8NY0Q [提取码]&#xf…

VS2010下载地址和安装教程(图解)

VS2010下载地址和安装教程(图解) 为了更好地支持 Win7 程序的开发,微软于2010年4月12日发布了 VS2010,它的界面被重新设计,变得更加简洁。 需要注意的是,VS2010 可以在 XP、Win7 和 Win8 下完美运行&…