(音视频开发)WebRTC进阶流媒体服务器开发-多人互动架构

一:多人互动架构方案

(一)WebRTC回顾,两层含义:

1.WebRTC是google开源的流媒体客户端,可以进行实时通讯,主要应用于浏览器之间进行实时通讯,也可以单独编译在自己的应用中

2.WebRTC也是一套规范,只对客户端做了定义,如何进行媒体协商、通信流程...;对于服务端,比如信令服务端、中继服务,并没有在WebRTC中定义,由厂商定义;对于多人互动方案也没有定义

(二)3种框架进行多人互动

Mesh方案:从WebRTC客户端演变过来,多人互动--->变为多个1V1通讯,会导致网络连接过多,任一个客户端都需要与其他客户进行连接,带宽占用过多,不适用商业

MCU方案:硬件演变为软件,包含一个中心服务器。中心服务器会对多路视频进行混屏(解码、编码),降低带宽,占CPU,支持的同时在线人数有限。此外,客户端无法对其进行控制,灵活性较差。

SFU方案:简单、主流,不对数据处理,当服务器收到数据后直接进行数据转发,只进行转发。每个客户端都会收到其他客户端通过服务器转发过来的数据,但是相对于Mesh,建立的连接只和服务器个数有关。并且相对于MCU,客户端对于接受的其他各个客户端的数据可以进行灵活控制。缺点:相对有MCU传输的数据更多,造成客户端到服务端的带宽占用过高,带宽不够时会造成丢包,服务质量无法保证!改进方法:1.降低码流(上传时/发送时)2.根据H264中SVC分层方式,将一路视频分为核心层、扩展层、边缘层,一层比一层清晰(增量累加),当带宽足够时可以全部下发给客户端,不够时可以选择传输核心层或者核心层+扩展层从而降低下行带宽数量,缓解质量不足问题

二: 架构模型详解

(一)Mesh架构模型详解

1. 1V1通讯模型

WebRTC学习(八)1V1音视频实时互动直播系统

WebRTC学习(八)1V1音视频实时互动直播系统(2)

2. Mesh通讯模型(未画出信令服务器)

Mesh方案,不依赖于服务器进行数据中转(不会走TURN),是各个端之间建立连接。

内部同1V1进行设备检测、数据编解码、媒体协商、建立连接、发送数据。唯一区别就是1V1可以通过TURN转发。

Mesh一般使用P2P直连,不会经过TURN服务器转发,太复杂,不易管理。但是国内需要考虑穿透率,所以该方案一般用在局域网中进行使用和学习!

(二)MCU架构模型详解

在MCU中心服务器中,存在多个Room,这里只选取左侧的进行讲解:

1.对于每一个客户端C1、C2...C4,进入房间中,在房间中(服务器端)都有对应的模块进行连接,客户端进行通讯的数据,比如音频数据、视频数据都通过该连接传递给服务端。

2.服务端模块收到数据后,会对数据进行解复用,将音视频数据拆解,将音频放入音频处理模块,将视频放入视频处理模块,实现对数据解码,然后进行混屏,之后进行编码压缩。返回压缩数据(一路流)到各个客户端。

缺点:服务端无法支持大量客户端,最多支持几十路流处理;客户端获取的数据固定(由服务端处理后的),无法进行编辑(拉伸、改变清晰度)

音视频流媒体高级开发知识点学习视频点击 音视频学习资料 获取。知识点包括有FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百万级高并发WebRTC流媒体服务器设计与开发是一门涉及到视频通信、网络协议和Web开发的高级课程。该课程的目标是培养学生对大规模高并发视频流媒体服务器的设计和开发能力。 在这门课程中,学生将学习如何设计和构建一个支持数百万并发连接的流媒体服务器。课程将涵盖以下内容: 1. WebRTC基础知识:学生将学习WebRTC协议的基本原理和工作方式,了解传输控制协议(TCP)与用户数据报协议(UDP)之间的差异,以及实时通信协议(RTC)。 2. 服务器架构设计:学生将学习如何设计一种高可扩展性的架构,以处理大量并发连接和视频流的传输。他们将学习使用分布式系统和负载均衡来优化服务器的性能和可用性。 3. 流媒体编解码技术:学生将学习不同的视频编解码算法,并了解实时流媒体传输的特点和挑战。他们将学习如何处理音频和视频数据的编码和解码,并了解相关的压缩和解压缩技术。 4. 网络安全和数据隐私:学生将研究网络安全和数据隐私方面的问题,并学习如何在流媒体服务器中实施安全措施,保护用户的数据和隐私。 5. 实际项目开发:学生将参与实际的项目开发,设计并实现一个具有百万级高并发连接的WebRTC流媒体服务器。他们将学习如何在服务器上进行性能优化,并解决实时视频传输中遇到的各种问题。 这门课程将提供相关的教材、参考书籍和在线资源。学生将通过实际编程练习和团队项目来提高他们的实践能力,并通过课堂讨论和评估来加深对课程内容的理解。 以上是对百万级高并发WebRTC流媒体服务器设计与开发课程资源的简要回答,该课程将为学生提供深入了解WebRTC流媒体服务器的机会,并为他们在相关领域的职业发展打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值