如何打造自己的WebRTC 服务器

本文介绍了如何打造WebRTC服务器,包括Kurento、Mediasoup和Licode等开源服务器的特点和优劣势。接着分析了WebRTC服务端的基本组件、SDP演进和层次架构。此外,讨论了通信优化策略,如对抗丢包和多人通信问题,并展望了WebRTC在AI和安防领域的应用前景。

1、引言


近年来,直播竞答、网络游戏直播等新的实时音视频通讯场景不断推陈出新,并成为引领互联网娱乐风向的弄潮儿。实时音视频应用的爆发,也使得WebRTC(Web Real-Time Communication,网页实时通信技术,)技术成为了人们关注的焦点。如何打造自己的WebRTC 服务器呢?下面我先来介绍一下WebRTC 服务器的一些基本内容:

  • 开源的WebRTC 服务器介绍

  • WebRTC服务端整体分析

  • 通信优化

  • WebRTC的未来展望

首先,我们会先来了解下一些开源的服务器是怎么做的,我们做事情,在没有头绪的基础上,参考和模仿可能是一种必然流程,毕竟站在巨人的肩膀上,我们的视野才更加开阔。

其次,通过形形色色的开源服务器介绍和理解,我们初步的去分析一个WebRTC 服务器究竟包含哪些模块,又是一个什么样的组织架构和层次关系。后面在服务器搭建后面临的丢包和多人通话问题又有什么解决方式。最后就是展望一下整个WebRTC未来发展。

2、开源的WebRTC 服务器介绍


我们进入第一部分:WebRTC开源服务器介绍,这个模块我选择了我认为很有代表意义的3种类型的WebRTC 开源服务器

  • 大而全的Kurento

  • 务实主义的Licode

  • 小而美的Mediasoup

2.1大而全的Kurento


之所以称Kurento为大而全,是因为Kurento 强大的滤镜和计算机视觉,我们看这张图:

Kurento功能图

通过这张图我们了解到Kurento不仅仅包含了普通流媒体服务器的SFU MCU Transcoding Recording等基本功能,还包含了强大的滤镜和计算机视觉处理功能,而且,在整体的功能上不仅仅包含WebRTC 模块还有很多其他协议支持,诸如SIP RTMP RTSP 等协议,更准确的说Kurento 更像是一个融合通信平台,而且Kurento,基于插件式编程方式,很容易扩展自己的功能模块。

Kurento 在应用中有哪些问题,或者说,哪些是优势,哪些是劣势呢,我们看下面:

优势:

  • 文档齐全无论API使用文档,还是部署文档都很齐全

  • 功能强大,强大的路径和计算机视觉处理

  • 模块化编程,方便扩展,这是对开发者很友好的地方

  • 使用方便,客户端服务端都有专门的API 组件 接入系统,而且服务器端提供了J2EE node.js两种接口文档,覆盖很齐全

劣势:

  • 代码太多太庞大,可能需要开发者有足够的功力才能驾驭这把屠龙刀

  • 还一个重要原因就是性能比较差

2.2小而美的Mediasoup


Mediasoup是一个很新的WebRTC服务器,专注WebRTC 的相关功能开发,专注做好这一件事,很小确很美。下面这样图是Mediasoup 大致的一个基本架构图:

Mediasoup 架构

Mediasoup

优势:

  • 性能优秀

  • 支持很多的WebRTC 新特性(PlanB UnifiedPlan simulcast)

  • 同时支持ORTC和WebRTC 的互通

劣势:

  • 功能比较少

  • 代码和架构相对来比较晦涩一点

  • 信令模块只提供node.js 版本

2.3务实主义的Licode


说了两款极端的WebRTCserver ,我们最后讲一个务实主义的Licode ,为什么称Licode 为务实主义?Licode 这款服务器完全是站在一个PAAS 平台,一个业务的角度去思考问题,去构建整个系统,很务实,很实际,我们看Licode架构图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值