WebRTC和流媒体现状2018
在过去的6年里,WebRTC一直陪伴着我们, 在这段时间里,它的采用率和受欢迎程度确实有所提高. 但是,WebRTC究竟如何以及在哪里融入流媒体世界呢? 既然我们这么做了,那么2018年我们应该期待什么呢?
WebRTC是IETF和W3C的结合规范,是HTML5的一部分. 在本质上, WebRTC支持语音发送, video, 和任何其他任意数据直接跨浏览器实时. 您编写了一些JavaScript代码, 添加一些中继服务器,以便在需要时使用, 这样你就有了视频聊天服务.
WebRTC和使用它的开发人员的重点通常是处理远程视频聊天会议, 一对一或群呼都行. 这也是web浏览器支持WebRTC的主要关注点. 那么,在过去的一年里,WebRTC是如何在流媒体领域变得如此有趣的呢?
这里有几个促成因素:
- Flash正在消亡, 现代浏览器限制了它的使用和可用性,这正在加速, 以及Adobe计划在2020年底结束Flash的生命周期.
- MPEG-DASH和HLS实现通常具有延迟限制. 通常情况下,这些流媒体技术会出现10秒或更长时间的延迟.
- 实时和互动变得越来越重要. 我们可以从Facebook Live、微软 Mixer和其他流媒体服务中看到这一点.
- 广播公司正在寻求直接在浏览器中分享和混合他们的流,而不需要安装任何东西.
- 不断增长的视频消费使流媒体服务器紧张,并增加了广播公司的网络成本.
- H的介绍.264作为WebRTC中强制实现的编解码器,它在所有现代浏览器上的可用性使得WebRTC更容易用于现有的流媒体服务.
现在有几个地方你可以在流媒体服务中找到WebRTC, 他们使用WebRTC的方式也各不相同. 去理解这些是如何形成的, 了解WebRTC在流媒体环境下的工作方式是很重要的, 如图所示 图1.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/115402-Levi-WebRTC-1-ORG.jpg)
图1. 一个简单的示意图显示在媒体流环境中的WebRTC.
浏览器将对应用程序本身使用一个信号通道. 应用程序决定如何以及在哪里使用WebRTC连接浏览器. 对于每个用例,应用程序及其行为将非常不同.
WebRTC的实时音频和视频可以在CDN或媒体服务器前使用, 用于发送和接收媒体. 这将用于低延迟流用例.
最后但同样重要的。, WebRTC的数据通道用于在浏览器之间直接创建自组织点对点(P2P) CDN连接. 这可以减少广播公司的缓冲和成本.
考虑到这一点,让我们看看它如何适用于五种不同的媒体流场景
1. 无装置广播
让WebRTC在流媒体中工作的最简单的方法和场所是让广播公司在没有安装应用程序的情况下共享他们的流媒体.
WebRTC是目前唯一允许浏览器共享摄像头和麦克风的机制. Flash不再是一种选择. 插件越来越不受欢迎,而且很难维护. 人们要么安装一个专用的应用程序,要么在浏览器中使用WebRTC.
在过去, 这种方法需要在VP8 (WebRTC中可用的视频编解码器)和H.264. 今天,这不再是必要的,因为浏览器支持H.264编码在WebRTC.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/115403-Levi-WebRTC-2-ORG.jpg)
图2.使用WebRTC连接到CDN,通过HLS提供直播流
图2 说明了这在建筑上是如何演变的. 连接到具有实时媒体流的CDN需要实时消息传递协议(RTMP)支持, 这意味着要使用额外的网关组件. Kurento, 一个开源的WebRTC媒体服务器, 被广泛使用吗, ,最近, Wowza和Red5 Pro开始提供将WebRTC连接到RTMP的类似功能(两者都提供低延迟观看)。. 纳米宇宙采用了一种稍微不同的方法, 允许广播公司通过WebRTC连接, 但另一端是流媒体 使用针对低延迟进行优化的HLS.
2. 面试
这将单广播器方法提升到了一个新的水平.
随着视频的互动性越来越强,制作视频本身的方式也变得越来越强. 某些事件, 比如网络研讨会和新闻相关的视频流, 需要采访人的能力现场和广播采访作为一个单一的单位给观众. 但这位播音员和他的主持人可能不在一个房间里, 因此,他们需要进行实时视频聊天,然后将其混合并传输给观众.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/115404-Levi-WebRTC-3-ORG.jpg)
图3. 一个典型的多人视频采访的设置是混合和流媒体给观众
中的媒体服务器 图3 现在不仅仅是一个媒体门户. 它接收来自所有活动参与者(广播者和主持人)的实时媒体流。, 管理他们之间的电话会议, 并且还混合所有输入来创建一个可以被视频cdn(最有可能是RTMP格式)消化的单一流.
YouNow可能是最早提供这种用户体验的公司之一. 最近,Facebook Live和Instagram都支持在直播活动中添加嘉宾.
在企业中, 举办有来自不同地点的多个主持人参加的网络研讨会是很常见的. 近年来,网络研讨会已经从语音转向视频. 这就需要启用这些类型的面试场景. 同时, 它增加了对观看者的低延迟的要求, 这将我们带到了下一个用例.
3. 低延迟直播
在某种程度上, 前两个用例可以看作是这个用例的前奏——在后flash世界中实现低延迟直播. 因为WebRTC是为实时通信而设计和实现的, 它非常有能力提供低延迟的直播.
在过去的一两年里,我们看到很多公司开始在这样的用例中使用WebRTC. 解决这个技术问题的厂商从两个不同的方向着手:
- 采用视频会议方法,并通过选择性转发单元(SFU)将其增加到支持更大的组, 一种媒体路由器.
- 从现有的RTMP流技术开始,并增强它们以支持WebRTC.
这两个方向都是有效的,并且具有不同的技术优势和挑战. 在一天结束的时候, 两者都需要解决规模问题:如何将单个流媒体播放给大量观众? 即使您假设单个媒体服务器可以向数千名观众广播, 当有问题的流被更多的观众请求时会发生什么?
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/115405-Levi-WebRTC-4-ORG.jpg)
图4. 单个广播机构的流在到达目的地之前从一个媒体服务器级联到另一个媒体服务器.
解决方案是级联,这与今天cdn的工作方式非常相似. 图4 展示了这样一个架构, 在到达目的地之前,单个广播公司的流从一个媒体服务器级联到另一个媒体服务器.
在被微软收购并更名为Mixer之前,Beam就是这么做的. 这就是互联网上所有提供拍卖的灰色地带, 赌博, 色情片正在大规模地解决直播的问题.
2018年将会有更多的科技公司提供这样的解决方案和产品, 以及一两个提供此类商业服务的CDN.
相关文章
它还不是一个标准,但这可能会改变. 以下是对WebRTC状态的详细介绍, 这个项目最终可以大规模地提供即时视频流.
4月19日2019
走在前沿是有代价的, 以及涉及学习WebRTC和接受有限浏览器支持的低延迟实时视频流.
2018年7月20日
斯坦福大学的一个研究小组创建了一个名为Salsify的架构,它可能为实时应用程序提供更好的视频传输方式
2018年5月25日
提及的公司及供应商