WHIP 和 WHEP 是让 WebRTC 进入直播的规范。但这真的是未来需要的吗?
WebRTC 对于实时性来说是很好的,其他方面就不多说了。最近出现了两个新协议——WHIP 和 WHEP,它们作为 WebRTC 的信令工作,以更好地支持实时流媒体用例。
最近几个月,在这些协议的实施中,有越来越多的采用(实际使用的采用并不是我所了解的,所以不能证明这一点)。这一进展是积极的,但我不能忽视我的感觉,即这只是一个暂时的解决方案。
WHIP(WebRTC-HTTP Ingestion Protocol)和 WHEP (WebRTC-HTTP Egress Protocol),它们都是相对较新的 IETF 草案,为 WebRTC 定义了信令协议。
WebRTC 明确决定不使用任何信令协议,以便开发人员能够挑选和选择他们选择的任何现有信令协议——无论是 SIP、XMPP 还是任何其他替代方案。对于流媒体行业来说,这不是一件好事,他们需要一个有现成实现的知名协议。这导致了 WHIP 和 WHEP。
为了解它们如何融入一个解决方案,我们可以使用下图:
在流媒体直播的用例中,我们有一个或多个广播者将他们的媒体 “输入”到一个媒体服务器。这就是 WHIP 的作用。另一边的观众在媒体服务器基础设施的出口处获得他们的媒体流。
在视频会议方面,WebRTC 改变了市场及其对会议和互操作性的看法,它实际上扼杀了协议层面上各厂商之间的互操作性概念,将其转移到应用层面,让用户在设备上安装自己的应用,或只是按需加载网页。
流媒体行业是不同的,它依赖于3个组件,这些组件可以很容易地来自3个不同的供应商:
当广播公司实施他的应用程序时,他挑选并选择媒体服务器和媒体播放器。有时他也会选择媒体源部分,但并非总是如此。这 3 个类别中的每个供应商都不能真正强制其他供应商使用他自己的组件。
这给 WebRTC 带来了一个真正的问题,它没有信令协议——这是留给实施者的,但你如何开发这样一个解决方案,在没有合适的信令协议的情况下跨厂商工作?
答案是 WHIP 和 WHEP –
这些都是围绕单个 HTTP 请求的概念建立的非常简单的协议,试图让流媒体行业使用它们,而不是回避隐藏在 WebRTC 中的复杂问题。
事情也有挑战性的一面:
最后一个弱点——WebRTC 将我引向了下一个问题。
流媒体有不同的形式和规模。
该场景可能有不同的广播者:观众人数——1:1、1:很多、少数:1、少数:许多。对于我喜欢在发送端、接收端和媒体服务器本身使用什么,每个人都有自己的要求和细微差别。
真正改变一切的是延迟。我们愿意接受多大的延迟?
我们希望的延迟越低,实施起来就越有挑战性。我们希望越接近现场/实时,就越需要在质量方面做出牺牲。
WebRTC 的重点是实时和现场。以至于它不能真正处理有延迟的东西。它可以,但它会以高复杂度的代价牺牲太多的东西,这是你并不真正想要或需要的。
这到底是什么意思?
这时就需要问几个棘手的问题——你的流媒体服务到底需要什么?
如果你只需要在毫秒级的延迟下进行,那么WebRTC可能是你的选择。但是,如果你的用例中还有其他延迟,那么在选择 WebRTC 作为你的首选解决方案之前要三思而后行。
这里需要提到的一个重要方面是,在许多情况下,WebRTC在媒体流中是以混合模式使用的。
很多时候,我们想用 WebRTC 捕捉媒体,并在其他地方用其他协议查看媒体–通常是因为我们不那么关心延迟,或者因为我们已经解决和部署了查看组件–这里,WebRTC 捕捉被添加到现有的服务中。
在这里添加 WHIP 协议,并将 WebRTC 媒体捕捉到流媒体服务中,意味着我们可以从网络浏览器中获取媒体,而无需安装任何东西。实时性很好,但并不总是需要。浏览器摄取主要是为了减少摩擦和启用网络应用。
最后一个建议在两年前看起来是不同的,当时浏览器的实时游戏只有WebRTC。但今天,情况并非如此。
在 2020 年,我指出了WebRTC 的拆分。WebRTC 被拆分成其核心组件的趋势,以便开发人员能够独立使用每个组件,并在某种程度上建立自己的解决方案,与WebRTC相似,但不是WebRTC。这些组件是:
从理论上讲,使用这 3 个组件可以构建一个实时通信解决方案,这正是 Zoom 试图在 Web 浏览器中做的事情。
在过去的几个月里,我看到越来越多的公司采用这些接口。开始是供应商使用 WebAssembly 进行背景模糊和替换。接着是一些公司用 WebTransport 和/或 WebCodecs 进行流式传输,最近很多厂商用WebAssembly 进行噪音抑制。
这种趋势只会增长。
这与流媒体有何关系?
很好,你问了!
这 3 点使我们能够实现我们自己的流媒体解决方案,而不是基于 WebRTC,可以在 Web 浏览器中实现毫秒级的延迟。它也足够灵活,使我们能够在其中添加机制和工具,以便根据需要处理更高的延迟,在更高的延迟下,我们可以提高媒体的质量。
这是我喜欢这种方法的地方:
但它并不都是闪亮的:
我不知道。
WHIP 和 WHEP 在这里。他们正在获得牵引力,并有供应商在背后推动他们。
另一方面,它们并没有解决全部问题——只能解决流媒体的直播方面。
目前使用WebRTC的原因是,它是镇上唯一的游戏。随着基于 WebTransport+WebCodecs+WebAssembly 的解决方案的采用,这种情况很快就会改变,在浏览器中用于直播流的WebRTC的替代方案将会出现。
它能取代WebRTC吗?对于媒体流来说是的。
这是行业发展的方向吗?这还有待观察,但肯定是要跟踪的。
本文转载自实时互动网,文章出处《WHIP & WHEP:WebRTC 是直播的未来吗?》