揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍-阿里云开发者社区

开发者社区> harlanc> 正文

揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍

简介: 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的。当我第一次尝试理解WebRTC时,网络资源之多让人难以置信。本文针对webRTC媒体服务器和相关的开源项目(如kurento,janus,jitsi.org等)做一些介绍。
+关注继续查看
#揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍

WebRTC生态系统是非常庞大的。当我第一次尝试理解WebRTC时,网络资源之多让人难以置信。本文针对webRTC媒体服务器和相关的开源项目(如kurento,janus,jitsi.org等)做一些介绍。并且将尝试降低理解WebRTC的业务价值所需要的技术门槛。

![](http://qiniu.harlanc.vip/7.2.2018_11:26:48.png)

## 何为WebRTC服务器?

自从WebRTC诞生之初以来,该技术的主要卖点之一是它可以进行点对点(browser-to-browser)通信,而几乎不需要服务器的干预,服务器只用来发送信令。WebRTC媒体服务器的概念同p2p相比是相反的。

下面,我将试图说明为什么媒体服务器是有用的,他们通常提供什么类型的功能以及相应的可供用户使用的开源方案有哪些。

## 视频通话中的多点用户

![](http://qiniu.harlanc.vip/7.2.2018_11:38:37.png)

尽管确实可以使用p2p通信(图1网格体系结构)来让多点用户保持视频通话,但随着用户数量的增加,此方案变的不再实际,因为需要一个用户将他/她的视频/音频流传输给其余每个用户,同时接收其余每个用户的视频/音频流。

事实上,即使在最优的网络条件下,正常的mesh视频通话也不能超过5个用户。这是媒体服务器派上用场的地方,因为它可以减少客户端需要发送的流的数量,同时也能减少客户端需要接收的流的数量,其效果取决于媒体服务器性能。

当一个媒体服务器充当这种中间人的角色时,它通常被称为SFU(单一转发单元 Single Forwarding Unit),这也就意味着它的主要目的是在客户端之间转发媒体流。

还有一个MCU(多点会议单元 Multiponit Conferencing Unit)的概念,这样的服务器不仅仅能够转发媒体流,也能对通过它的媒体流进行处理(例如,将所有视频或音频流混合为一个)。

## 视频录制

让所有视频流通过媒体服务器(群集)的主要好处之一是可以对媒体流进行出于任何目的的录制和存储,这在mesh架构上很难做到。

## 同其它通信技术集成

使用媒体服务器的另外一个优点是能够同web系统之外的其它系统进行通信,例如通过SIP中继的PSTN或者通过RTMP进行流传输的服务(像Fackbook直播或者Youtube直播流)。

你可以看到之前博客的一个[实例](https://webrtc.ventures/2017/02/kurento-asterisk-powerful-couple/),在此实例中Kurento媒体服务器用来在浏览器和SIP电话之间进行视频通话。

## 媒体流的处理

一些媒体服务器允许对视频和音频流做底层上的处理,比如能够在视频上运行计算机视觉模型或者将音频流发送到语音识别引引擎,例如google Speech。这些功能将webrtc提升到另外一个层次。依我看来,它提供了更加丰富和创新性的实时交互,为一个普通的通信平台增加了很多价值。

我们之前讨论过此问题,Kurento媒体服务器将人脸识别模型应用到了视频流上,在人的头上戴了一顶帽子。

## 有哪些OSS开源媒体服务器可供选用??

如前所述,WebRTC生态系统非常庞大,市面上由很多开源项目。

下面是最成熟和受欢迎的:

[Jitsi Platform](https://jitsi.org/jitsi-meet/)

![](http://qiniu.harlanc.vip/7.4.2018_7:02:31.png)

Jitsi不仅仅是一个WebRTC媒体服务器,而是围绕者webrtc构建了一整个平台。 Jitsi系列产品包括Jitsi Videobridge(媒体中继,SFU),Jitsi Meet(会议web客户端),Jicofo(Jitsi Conference Focus),Jigasi(Jitsi Gateway to SIP)和Jitsi SIP Phone。 Jitsi平台最吸引人的特性是它包含了在数小时内启动和运行的通信平台的所有功能。它还使用Jingle(XMPP)和功能齐全的Web interface实现了自己的信令。遗憾的是,它没有一个稳固易用的媒体录制功能实现。

[Kurento Media Server](https://www.kurento.org)

![](http:/qiniu.harlanc.vip/7.4.2018_7:10:37.png)

这是最通用的解决方案之一。它也不仅仅是一个媒体服务器,而是构建了一个工具包。 
Kurento的主要优点是通过引入媒体工作流(meidia workflow)的概念实现了多功能性,它允许在代码中定义媒体流以何种方式传输以及传到到哪里。这就允许WebRTC开发者将非常有趣的功能进行集成,例如计算机视觉(例如识别QR码,面部检测),实时媒体修正和与RTP(VoIP)服务的互操作。 Kurento还可以在单个实例中配置成SFU或MCU(或者同时使用)。

[Janus WebRTC Gateway](https://janus.conf.meetecho.com)
![](http://qiniu.harlanc.vip/7.4.2018_7:20:32.png)

虽然它的描述中没有提到“meidia server”,但Janus可以很容易地将其设置为SFU。其最显着的特征之一是其插件架构,可以增强服务的核心功能。有一个[演示](https://janus.conf.meetecho.com/demos.html)页面,显示了一些有趣的Janus用例,例如SIP Gateway,屏幕共享等。


[mediasoup](https://mediasoup.org)

![](http://qiniu.harlanc.vip/7.4.2018_7:24:38.png)

一个相对较新且有趣的媒体服务器,它与其他媒体服务器的不同之处在于它被设计为一个Library(用于Node),允许它集成到更大的应用程序中。

[原文链接](https://webrtc.ventures/2017/11/a-guide-to-webrtc-media-servers-open-source-options/)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
艾伟也谈项目管理,ERP项目实施要未雨绸缪不要亡羊补牢
  在ERP项目中,要做到在项目实施的未雨绸缪,不会出现亡羊补牢的情况就需要项目管理和实施人员在项目推进过程中队下面的阶段进行预测,把握好发展的趋势,掌握项目的主动权。下面就提出一些建议,供大家讨论。希望对大家有用。
757 0
一个JavaWeb项目中使用的部分技术
-- 2015年8月8日1. Web框架: Spring+ SpringMVC + MyBatis Spring: 作为容器,工厂,用于解耦以及管理对象生命周期。 整合各类框架和依赖。 MVC  : 配置,文档与源码结合在一起,减轻开发工作量,易维护,易测试. MyBatis: 灵活稳定,自由度高,与代码生成器结合使用,易集成,易开发,代码可读性良好。
995 0
JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
一、乱码原因 ①传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码。 ②Tomcat服务器默认采用的ISO8859-1编码得到参数值。虽然①中采用了同样的编码方式,但经过tomcat一处理,也会出现乱码(GET方式)   二、解决办法 方法一 每次传输都手动设置编码(GET方式传输数据) 传输方 String name =
1282 0
【产品介绍】“弹性裸金属服务器”到底有那些特性?
弹性裸金属服务器的八大特性,总结相关特性。那么阿里云弹性裸金属服务器(神龙)的表现呢
3036 0
【MyEcplise】导入项目后,会定时弹出一下错误MyEcplise tern was unable to complete your request in time.This couble happen if your project contains several large javaScr
Myecplise弹出错误如下:   错误代码: MyEcplise tern was unable to complete your request in time.This couble happen if your project contains several large javaScript libraies.
985 0
+关注
harlanc
VR公司资深开发工程师,主要关注的领域为音视频,软件安全。热衷开源,喜欢写作。
119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载