mediasoup中文翻译、代码走读输出文档(后续陆续更新)

文章目录使用说明mediasoup 官方文档代码走读、翻译总览软件设计宗旨用例V3 与V2的差异客户端与服务器之间的通信mediasoup-client和libmediasoupclient的准则信令和 Peers设备加载device.load({ routerRtpCapabilities })创建 "Transports"生产媒体消费媒体可扩展性多个独立的'mediasoup '-'routers'一对多广播mediasoup v3设计特征架构使用说明???代表有疑问,需要后续补充官网地址
摘要由CSDN通过智能技术生成

使用说明

  1. ???代表有疑问,需要后续补充

  2. 官网地址:官网文档目录链接

mediasoup 官方文档走读、翻译

总览

一个SFU(选择性转发单元)从终端接收音频和视频流然后转发给其他终端。每个接收终端可以选择接收的流和时空层。与mixer或MCU(多点控制单元)相比,该设计具有更好的性能,更高的吞吐量和更少的延迟。它具有高度的可扩展性,并且由于不需要转码或混合媒体,因此所需资源少得多。

由于端点分别获取其他端点的媒体,因此它们可以具有个性化的布局,并选择要呈现的流以及如何显示它们。

软件设计宗旨

  • 是一个选择转发单元;(并列的还有:MCU-多点控制单元,几年前比较流行;Mesh -网状模型,即多个终端之间两两进行连接,形成一个网状结构;不同码流模型的本质差异)
  • 支持WebRTC和普通RTP输入和输出
  • 在服务器端设计的是Node.js模块
  • 客户端是小型JavaScript和C ++库
  • 是极简主义设计:只处理媒体分层(分层概念,参考RTP-SVC标准)
  • 与信令无关: 不强制任何信令协议
  • 非常低级别的API(mediasoup和它的客户端库提供一个超级低级的API。它们的目的是使不同的用例和场景,没有任何约束或假设。)
  • 支持现存所有类型的webRTC终端;(webRTC终端 是基于webRTC实现的终端)
  • 使与众所周知的多媒体库/工具 可以集成

了解webrtc协议

有助于理解后续api的实现原理

在这里插入图片描述

WebRTC 支持通过 DataChannel API 在端到端之间传 输任意应用数据。DataChannel 依赖于 SCTP(Stream Control Transmission Protocol,流控制传输协议),而 SCTP 在两端之间建立的 DTLS 信道之上运行的。

在这里插入图片描述

Secure Real-time Transport Protocol(SRTP)用于传输多媒体数据而RTP Control Protocol(RTCP)信息用于监控传输的状态。而DTLS则用于SRTP key及其相关的管理。

在这里插入图片描述

如果发生STUN服务器无法建立连接的情况的话,ICE将会使用TURN中继服务器,TURN是STUN的扩展,它允许媒体遍历NAT,而不会执行STUN流量所需的“一致打孔”,TURN服务器实际上在WebRTC对等体之间中继媒体,所以我这里理解的话使用TURN就很难被称为端对端之间通信了.

用例

mediasoup及其客户端库提供了超低级的API。它们旨在实现各种用例和场景,而没有任何约束或假设。其中一些用例是:

  • 组视频聊天应用程序。
  • 实时一对多(或很少对多)广播应用程序。
  • RTP流。

V3 与V2的差异

简而言之,mediasoup v3和mediasoup-client v3(除了新的libmediasoup C ++库)都比其相应的v2版本低级别(参考软件宗旨-low level API)得多,并且具有大量的改进和新功能。下表仅列出最具吸引力的部分:

Feature v2 v3 Description
mediasoup protocol 【协议】 [√] [] 【v2带有一组JSON消息,必须在客户端和服务器之间盲目交换。尽管这使客户端“从理论上讲更容易”,但使服务器端逻辑变得困难。
相反,在v3中,mediasoup在客户端和服务器端都提供了全面的底层JavaScript API,因此应用程序知道在客户端和服务器之间交换的确切信息种类。】
Peers [√] [] 【v2在其API中包含“对等”的概念。对等点只是一个容器,用于保存传输、生产者和消费者(实际上,对等点仅存在于mediasoup JavaScript领域中)。
v3摆脱了“对等”,并基于容纳生产者和消费者的传输强制执行低级API。由应用程序来处理信令级别的“对等”(如果需要),并将mediasoup实体与那些“对等”相关联】
Routers [] [√] 【在v2中,mediasoup会议室可容纳对等方。在v3中,会议室已重命名为路由器,并且不容纳对等端,但可以进行传输。将其重命名为路由器使其更适合其实际功能。】
Plain RTP injection [] [√] 【v3提供了一个统一的API,可以使用普通的RTP或WebRTC传输,向mediasoup路由器中注入音频/视频或从中提取音频/视频。这使得将诸如FFmpeg或GStreamer之类的知名软件轻松集成到基于mediasoup的应用程序中变得容易。】
Multiple binding IPs [] [√] 【在mediasoup v2中,只能将静态IPv4和IPv6对分配给所有传输。相反,在v3中,可以为每个传输提供多个不同的IPv4和/或IPv6地址。这将启用通过公共和专用网络接口传输媒体的方案。】
Per worker settings [] [√] 【mediasoup v2公开了一个Server类,内部处理N个工作程序(媒体子进程)的类,这些工作程序将它们共享所有相同的设置。在v3中,应用程序独立创建每个工作程序,并可以为其分配不同的设置(例如端口范围,日志级别等)。】
Horizontal scalability [] [√] 【通过在v3中使用新的管道传输,可以在媒体级别将在相同或不同主机上运行的两个mediasoup路由器互连,甚至在不同的机器中也可以使用多个CPU内核来提高广播功能变得可行。】
Sender side BWE [] [√] 【mediasoup v3实现了发送方带宽估算,可以在用户的时间/空间层之间自动切换,从而将总传输比特率调整为接收方端点中可用的带宽。】
Unlimited video layers
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值