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

小编 2026-06-24 阅读:1986 评论:0
#揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍WebRT...
#揭开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/)
版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表