实时视频通话超低延迟架构的思考与实践

作者:CQITer小编 时间:2018-03-31 21:46

字号
沙龙活动 | 3月31日 京东、微博、华为实战专家与你共同探讨容器技术实践!

2017年12月23日,由即构科技主办的 ZEGO Meetup 第一期 实时音视频开发者沙龙在深圳圆满结束。另外,2018年3月17日(本周六),ZEGO Meetup 第二期 视频直播+的技术实践之道在北京举行。此刻,让我们把深圳 ZEGO Meetup 会上的精彩技术演讲总结起来分享给业界,3月17日在北京中关村举行的ZEGO Meetup技术沙龙总的精彩技术演讲,也将会总结成技术文章来和读者分享。

以下是即构科技音视频核心工程师关旭就如何打造实时视频通话超低延迟架构的精彩分享。

嘉宾简介:

即构科技音视频核心工程师关旭

关旭,即构科技音视频引擎核心专家,硕士毕业于南开大学数学系,先后就职于中兴通讯、腾讯等公司负责音视频相关的研发工作,在实时音视频技术上有多年积累,当前在即构科技主要负责音视频引擎核心开发。

正文:

大家好,今天我分享的内容主要分如下几部分:

实时音视频场景——从直播到线上抓娃娃

实时架构的若干点思考

关于信源编码的思考

关于信道编码的思考

引入延迟的环节和降低延迟的思路

1. 实时音视频场景——从直播到线上抓娃娃

实时音视频两种不同的应用场景

图 1

图1展示了实时音视频两种不同的应用场景——连麦互动直播和线上娃娃机。虽然这两种都是互动,但是对于实时音视频的要求却不同。第一个实时连麦是语音视频流的互动,例如其中一个说了一句话,另外一个人听到了,再回复一句话,这个实时性只是对语音视频流的实时性要求很高。而第二种线上抓娃娃则对信令的延迟提出了更高的要求,操纵者无需说话,看到的是娃娃机传回来的视频流结果。如果考量互动直播是用实时音视频的延迟,那么线上抓娃娃则是用信令和视频流的延时。随着时代的发展,我们对实时语音视频的定义会慢慢有一些不同,将来可能还有更多的因素需要考虑。

即构互动直播的实时架构图

图 2

图2是即构互动直播的实时架构图,我们把互动直播分为两部分,一个是主播侧,需要更低的延迟,另一侧是普通观众,对延时不太敏感,但对流畅性敏感,中间通过一些旁路的服务把这两个集群(一个集群叫超低延迟集群,另外一个集群叫围观集群)连接起来。

在超低延时部分,我们提供的服务包括流状态更新、房间管理等,以及一些流媒体服务,主要起到分发的作用。我们通过超低延迟服务器集群(和观众侧不太一样),提供实时分发的功能。此外还提供了动态调度的服务,帮助我们在现有的资源网络上找到更好的链路。后面的观众集群是另外一个集群,把它们分开是出于一些业务方和我们自己成本上的考虑,另外会提供存储、PCB加速、分发的功能。

中间的旁路服务包括混流、转格式(主要是转码)、转协议等。为什么要混流?举一个比较简单的例子。当主播一侧有9个人连麦,如果没有混流服务,观众端就会同时拉9路音视频,这样对带宽压力很大。普通观众是通过围观服务器集群(延迟相对大的集群)去拉这些流的,这个集群的延迟可控性相对比较弱,有可能会出现这9路画面之间的不同步现象,通过混流服务,观众拉的都是合成好的音视频流,就不会出现各路流之间的不同步问题。还有转格式转码的服务,前面集群提供的是很低延迟的服务,里面一些,比如说编码码流,不能够在传统的CDN网络分发,如果想在传统的CDN网络上分发,就要服务端的转码。还有就是转协议,因为前面提供一个更低延时的服务,后面要在CDN网络上分发,所以协议也需要转。

线上娃娃机的APP版本的架构图

图 3

图3是线上娃娃机的APP版本的架构图,这里的是特色是线上娃娃机可以实时推两路视频流,上机玩家可以随时任意去切其中一路画面去看。这两路视频流首先通过我们超低延时服务器集群,同时上机玩家也可以推一路流上去,可以给围观观众方看到这个人在抓娃娃时候的一些表情、反应、语言,增加一种互动性。此外,玩家需要通过手机远程操控娃娃机,因此还需要实时信令的分发。

娃娃机的H5架构图

图 4

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接