WebRTC 服务器要干些什么

WebRTC 服务器要干些什么,第1张

WebRTC 的服务器大体分为信令服务器和媒体服务器

WebRTC 信令服务器是主要功能是为 WebRTC 通讯搭建一个了解彼此能力的通道, 交换信息, 同步改动.

而媒体服务器就是用来交换媒体,包括对媒体数据的加解密,编解码,带宽和速率控制等功能

不同的 RTP Toplogies 对服务器有不同的要求

WebRTC 或者说多媒体通信一般有如下的几种拓扑结构:

如果是两个人之间的端到端 (P2P) 的通信, 信令服务器的功能很简单

而由于是点对点的通信,媒体服务器也就不需要了。

如果是 SFU(Selective Forward Unit), 那么它的信令服务器除了上述的 SDP 媒体参数协商, ICE 连接地址交换,还有参加 RTP 会话的参加者信息的同步。

多个人之间的会议系统, 信令控制会麻烦很多,除了上述两个基本功能之外, 还要有

在 RFC4575 中有这样的定义

Multiple Control Unit 多点控制单元相比 SFU, 它有着对于媒体流的 Mix 和 translate 功能,可以很好地适配传统的通信设备,在实际应用中,一般我们会以 SFU 为主, MCU 为辅,共同形成一个服务器集群。

在 WebRTC 服务器上,我们一般会维护如下的领域对象

领域对象的具体内容从略,一般有如下的 Command 或 Event

应用层的事件大约可以分为 5 类

具体的有

在一个视频会议中,大家都在向会议室中发布自己的音视频流,也订阅他人的音视频媒体流,所以服务器,特别是 SFU 需要维护这样一个 pub-sub 发布者和订阅者之间的关系

WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能强大流媒体服务器的项目还比较稀少。之前了解到的服务器比如Mediasoup,Janus,Medooze ,要么就是设计复杂,接入成本要,要么就是性能较差,还就是多种语言结合,学习成本较高。 而SRS聚焦视频相关,功能专一,语言使用了高性能的c++,并且支持Rtmp转Webrtc等其他强大的功能的媒体服务器。

1.源码编译安装运行SRS

使用这个命令开启RTC支持

2.SRS常用命令

3.配置nginx代理

若不需要浏览器推流,可以不用设置nginx代理,使用localhost访问

注意:your 代表需要配置你自己的域名信息,由于使用浏览器推流必须使用https协议,所以我这边配置了证书

4.访问配置的域名

访问nginx配置的网址 https://webrtc.yourhost.com/

出现如下内容,则服务端架设成功

虽然整片文章看起来不复杂,流程很简单。但是官网的文档中的知识点比较分散,所以大家要想快速的搭建的话就参考我这篇文章

根据 webrtc-experiment ,opus的最小带宽为6kbit/s,vp8的最小带宽为100kbit/s.因此,总的速度为106kbit/s。【点击免费试用,0成本启动】

webrtc中的带宽自适应算法分为两种:

1、发端带宽控制,原理是由rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度。

2、收端带宽估算,原理是并由收到rtp数据,估出带宽;用卡尔曼滤波,对每一帧的发送时间和接收时间进行分析,从而得出网络带宽利用情况,修正估出的带宽。两种算法相辅相成,收端将估算的带宽发送给发端,发端结合收到的带宽以及丢包率,调整发送的带宽。

想要了解更多关于webrtc的相关信息,推荐咨询ZEGO即构科技。即构科技有限公司是为开发者提供高品质实时音视频、实时语音、互动直播和IM即时通讯等服务的公司。核心团队成员均来自QQ,有超过20年的互联网和音视频技术开发经验,以及亿量级海内外用户运营服务能力。专注于实时音视频领域,致力提供全世界范围内最清晰稳定实时的语音视频服务,已服务4000+企业,适用于游戏、娱乐社交、在线教育、在线医疗、远程会议、智能硬件等多种用户场景。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/237198.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存