0
今年,最受欢迎的游戏当属狼人杀,据不完全统计,截止到现在已经有40多款狼人杀APP上线,热度毫不逊于如日中天的视频直播市场。
事实上,狼人杀与视频直播一样,也是高度依赖语音视频技术的应用,但前者对产品的互动能力的要求比后者更高。语音互动是狼人杀游戏当中的重要环节,但资深玩家肯定知道,很多排在前列的狼人杀APP即使在复盘讨论等社交环节,也不能让用户同时发言,更不要说相互能看到视频了,这大大影响了产品的用户体验。
从目前的趋势来看,越来越多的产品开始使用多路连麦技术来解决这一问题。然而多路连麦技术仍然存在很多挑战,例如如何解决跨网传输问题?如何在复杂的网络环境中降低延迟?...
雷锋网了解到,即构科技为狼人杀的特定应用场景量身定做了一项名为“狼人杀虫洞连麦技术”的语音视频通讯云计算服务。那么,这一项技术的核心是什么?解决了什么痛点?如何进行验证?
本期硬创公开课邀请到了即构科技市场运营总监冼牛为大家深度解读狼人杀虫洞连麦技术。
冼牛,即构科技市场运营总监,资深技术人,市场营销新兵,客串投资顾问,骨灰级游泳者。北京邮电大学计算机硕士,香港大学工商管理硕士,一直秉承人丑应该多读书的理念,读书不断。2008年起旅居香港至今,2015年回流深圳南山创业,服务过爱立信香港,摩根大通香港,和分期乐集团等老东家。
2002年北邮硕士期间开始钻研视频会议,现深耕语音视频云服务,直播技术应用和直播行业研究。
以下内容整理自本期公开课,雷锋网做了不改变愿意的编辑:
顾名思义,狼人杀虫洞连麦技术是为狼人杀应用量身定做的一款产品,连麦技术不是新鲜的技术,在2016年网络直播元年,就已经被很多一线的直播公司应用。
2017年,狼人杀引领了一波新的浪潮到来,这款应用的直播技术也因此发生了一些变化。今天主要讲的是狼人杀虫洞连麦技术的系统结构以及它能为狼人杀这种场景解决哪些痛点。
我们可以从两个维度来比较市面上的狼人杀游戏:1)有没有视频;2)能不能同时说话。
从市面上主流的狼人杀游戏的比较中可以发现,有些只支持音频,比较少能支持视频,有些只支持单向的语音,比较少能支持连麦互动。
参考去年直播行业的发展趋势,请允许我断言,今年乃至明年狼人杀会把直播行业发展成熟的语音视频技术继承过来,并且结合本身的应用场景,发展出更多丰富的玩法。
目前,狼人杀的产品形态主要是游戏环节,同时在探索复盘讨论环节的玩法,甚至还有才艺表演等更多的玩法。后两种玩法包含更多的社交元素,对语音视频互动有更高的要求。
在游戏环节,通过单向的语音视频通讯技术就可以实现;在社交环节,对语音视频互动技术的要求甚高,必须要有多路连麦技术才能获得良好的用户体验。
目前,狼人杀类APP存在以下技术痛点:延迟大、无连麦、无视频、语音失真、卡顿不流畅、和语音有回声等。
延迟比较大可能因为目前的狼人杀类APP主要是采用单向音视频通讯,拉流端直接推流到CDN网络,然后拉流端直接从CDN网络拉流,一般的延迟会大于3秒。
狼人杀包含游戏环节和讨论复盘环节,甚至才艺表演等环节。在游戏环节中,用户轮流发言,发言之间会需要思考时间,因此还勉强可以玩,但是用户体验比较差。
在讨论复盘环节甚至其他社交环节,用户会同时发言,而且要求能看到其它用户的视频。在这种应用场景下,这么大的延迟会成为狼人杀类APP往社交化发展的绊脚石。
另外,很多狼人杀游戏中,卡顿不流畅,背景噪音,语音失真、回声的问题都是普遍存在。
失真有可能是因为回声消除和噪音抑制过度造成的。卡顿可能是因为在语音网络传输的过程中处理得不好,丢包或者抖动等网损都会造成的,也可能是因为终端设备解码和播放处理不流畅而造成。
要在语音视频通讯中获得超低的延迟,就要在网络中找到最短最优的传输路径。
在网络中,从A点到B点最短的距离,我们借用宇宙学中的概念,把它叫做网络上的虫洞。
狼人杀虫洞连麦技术所做的就是通过一系列的策略和算法优化各个环节,配以优质的网络资源,绕开网络拥塞、穿越物理距离,选择最优网络路径,实现超低延迟的连麦互动。
即构的狼人杀连麦解决方案可以在超低延迟和流畅的基础上实现语音视频连麦互动,让身处世界不同角落的用户,感觉就像是在面对面对话一样玩狼人杀。回声消除,噪声抑制,和自动增益控制等痛点都得到有效的解决。
在图中,左边显示的是即构的客户美播直播的9路连麦的场景,最右边是12路连麦的场景,中间是使用即构狼人杀虫洞连麦SDK开发的贴近狼人杀应用场景的DEMO,按住按钮就可以显示视频同时说话。
狼人杀连麦和直播连麦的流程是类似的。图中深蓝颜色代表的是终端和业务层的逻辑,浅蓝色代表的是服务器端的逻辑。
首先是第一主播先发布直播,把流推到服务器,然后服务器再流转推到CDN,普通用户再从CDN拉流。这一过程是单向的音视频通讯,并没有连麦互动的。
然后第二主播向业务服务器申请连麦,业务服务器再把这个请求传递给第一主播。通过业务服务器,连麦双方用信令完成了连麦的申请和应答。
两个主播连麦时,可以相互看到对方,所以拉流和推流都必须在媒体服务器,因为媒体服务器网络资源更好,而对于处于观看模式下的观众则可以采取低成本的方式,即从CDN拉流。
另外,从图中可以看出,整个传输和处理环节可以分为三个部分:推流端、拉流端和云端。
推流端包括采集、前处理、编码和推流,采集是推流端的麦克风或者摄像头采集音视频的数据,前处理包括音频变声、视频滤镜等。推流可以推到云端或者CDN,在云端会做混流、转码工作,随后就是分发,把流分发到CDN网络然后推到边缘节点,让观众端拉流。
拉流端和推流端的过程是相反的,拉流后进行解码,然后做后处理、渲染。
在图中,左边处于连麦模式的用户在进行连麦互动时,语音视频、信令全部是经过媒体服务器集群,右边是不需要连麦的用户,只需要从CDN网络拉流。
连麦模式的用户接入到连麦模式的服务器集群,这些服务器的计算资源和网络资源比较优质,而且在算法策略上做了很多工作,可以获得比较低的延迟。连麦模式的服务器集群包括语音视频服务器集群,信令服务器和调度服务器。语音视频服务器集群负责语音视频流的转码等处理,信令服务器负责信令的同步和通讯,调度服务器负责网络资源,计算资源,存储资源,和流量等的全局调度。
中间是混流服务器,它支持旁路混流服务,从语音视频服务器集群拉取多路单独的语音视频流,然后进行解码,音画同步,混流,然后在重新编码,最后推送到CDN网络。
聆听模式的用户要看这些语音视频,可以从CDN网络的边缘节点拉流播放。混流服务器加上CDN网络提供了旁路直播的服务,虽然一定程度牺牲了实时性,但是可以维持相对比较低的成本。
语音视频的连麦涉及到了三部分内容:终端的处理,包括回声消除、噪音抑制、音量自动增益这些语音前处理部分;在网络传输上,为了对抗网络损伤必须要配置三个模块,抖动缓冲、前向纠错、丢帧补偿;另外还需做到兼容性跨平台,安卓手机稂莠不齐,在安卓的兼容性上需要花很多功夫。
语音前处理:回声消除具有挑战性,当两个用户对讲的时候对技术要求很高,这需要看对讲时语音的通透度,语音消除本质就是参考远端信号把近端的回声处理掉,处理后可能会有两个问题,如果处理过度会造成语音失真,如果处理不够则会导致一部分回声没被消除。
噪音抑制:也有同样的要求,在没有噪音的时候需要尽可能的把语音保护好。传统的降噪的做法是通过分析背景噪音的强度和频谱分布,分析用户的声音的频谱,然后根据分析的结果建模模型,构建一个滤波器;这个滤波器能区分用户的声音和背景噪音,把噪音频段外的声音予以保留,把噪音频段内的声音能量降低,最终的效果就是抑制了噪音,让用户的声音更加清晰。
音量自动增益:主要在两个场景中发挥作用,一是在嘈杂环境中,它能自动调整麦克风的音量,增强有效的声音信息;另外,如果用户离麦克风较远,拾音效果会调整得比较好。
自适应复杂网络:包括三个模块:抖动缓冲、前向纠错、和丢帧补偿。网络抖动是不可避免的,抖动会导致数据的损伤,为了对抗抖动需要在算法上做一系列的处理,及适当地增加延迟,让抖动变得比较平缓。
前向纠错:用空间换时间,一次传送多个冗余数据包,就算丢包丢到20%-30%,接收方也可以把有效数据恢复,但是数据量是变多了,占的带宽也会更多。前向纠错和丢帧补偿一般结合起来互补使用。
丢帧补偿:用时间换空间,如果传一个数据包没接收到,就通过一定的智能策略来重传,由于每次传输的数据不包含冗余数据,因此占的带宽资源比较少,然后由于可能要多次重传,因此花费的时间也会比较多。
兼容性:主要体现在安卓设备上,因为安卓手机中低端的机型很多,在声学的设计上不太合理,扬声器和麦克风会出现耦合,这就会导致声学的算法在这些设备商运行的效果不好。即构的做法是尽量调用底层C接口,而不去调用Java接口,抹平设备之间的差异,以实现兼容性。
跨平台:现在一般采用的是QT开发框架,它开发的一套代码可以同时跑在Windows和Mac上。QT开发框架还不完美,开发出来的代码在Mac上跑还多多少少会有些问题,需要花时间去发现和修正。
云端主要考虑五个要素:海量并发、全网覆盖、热备容灾、QoE保障、扩容能力。
海量并发:要做到海量并发系统架构必须是分布式服务器群,每一个节点能感知周围的网络环境,把信息上报给调度服务器,调度服务器对全网的网络资源,计算资源,和流量资源进统一调度和负载均衡。
全网覆盖:采用多个核心机房覆盖主要城市,在偏远地区采用多节点代理,把请求转发给核心节点处理,这样能做到全网覆盖。
热备容灾:采用多个公有基础云服务,不同的公有云之间相互热备容灾。
QoE保障: 跨运营商网络传输是瓶颈,即构在所有接入点都采用BGP,确保接入的质量和不受跨网瓶颈的影响。;
无上限扩容:随着用户规模的增长,即构能为客户进行无感知无上限扩容,免除扩容过程中的成本和对用户的负面影响。
连麦互动最基础的需求是延迟要低。一般情况下要做到300-500ms左右,才能有好的互动体验。
以这张图为例,推流端在北京,拉流端有两个用户(一个在广州,一个在深圳),这三个玩家在玩狼人杀游戏的时候,音视频的推流要传到广州和深圳,可能会经过武汉或者宁波。
要做到低延迟的话,首先要有好的基建,另外需要选择最佳路径,第三个策略就是要在每个环节(采集、前处理、编码、推流、混流、转码等)做到最优。
目前市面上混流的选择有三种:一种是在推流端进行混流,第二种是在拉流端进行混流,第三种是在云端进行混流。
推流端混流:把和推流端连麦的其它用户的音视频流汇集在某一个玩家手机上,在手机上进行混流再转推到CDN上,这种成本很低。
拉流端混流:拉流端拉多流,然后进行混流,最后在终端设备进行渲染播放。
云端混流:所有连麦用户的音视频流汇集到云端,把多路音视频流混合成一路音视频流,然后转推CDN网络。
云端混流是推荐的做法,它能借用云端的能力:稳定而且充足的网络资源,计算资源,可扩展性,和运维能力
例如上图显示的,三个主播向语音视频服务器集群推流,然后进行连麦。连麦客户端必须从媒体服务器拉单独的多路流,这样才能保证低延迟,
旁路服务器还会从语音视频服务器把单流拉出去进行混流,同时保留多路流,给观众端保留两个选择,可以拉混流也可以拉多流。
如果要节省成本,就把混流转推到CDN网络,观众从边缘节点拉混流;如果要让观众获取好的体验,也可以拉多流。
这张图描述了回声消除的基本原理。
下行信号传过来,通过语音终端扬声器播放,这个声音也会被设备的麦克风采集,所以麦克风采集到的声音包含用户有效的语音,还包括扬声器发出来的回声,这时候就要把回声和有效的语音分离。
分离的前提是要有一个参考信号——下行信号,虽然经过扬声器播放下行信号和回声会有差异,但二者是高度相似,简单来说回声和下行信号存在一个函数关系。
回声消除的本质就是把这个函数解出来,通过AEC再把回声消除掉。
在这些技术条件都满足后,上线之前,需要做一系列测试。
语音视频测试的影响因素包括:
1)语音视频参数设置
2)网络环境
3)移动终端
4)声音环境
而具体评估指标包括:
1)延迟情况
2)卡顿情况
3)连麦路数
4)自动增益控制
5)噪音抑制
6)回声消除
一般来说,测试方法有两种:第一种是比较客观的测试方法,例如使用消音室;第二种是主观测试方法,测试人员的样本数目要多到具有统计意义。
这两种方法对于互联网创业团队的实操性不够强。这里推荐第三种实操性比较强的测试方法,可以由互联网创业团队因地制宜来操作。
1)设定不同的语音视频设置;
2)真实网络的环境,和使用网损模拟设备来模拟各种网络情况;
3)跨国家地区,跨运营商网络,还有不同的接入方式;
4)各种移动终端设备,重点是安卓手机,按照出货量排行,充分覆盖各种安卓机型。
总的原则就是,首先要贴近用户的场景,接着要覆盖影响因素的组合,然后是关注核心评估指标,最后是方案必须是团队容易实施的。
Q:在网络状况比较差的情况下,有没有比较好的降低延迟的办法?
A:网络状况差在传输层面表现出来的问题就是延迟比较大,和丢包率高。
要做低延迟的话会面临协议上的选择:标准RTMP协议还是UDP私有协议。无论是标准RTMP协议还是UDP私有协议,即构科技都做到了网络自适应,实现了稳定的低延迟和流畅的效果。
RTMP的优点:标准协议,业界公开透明,更加开放、可控、和可替代;天然支持和CDN对接。
RTMP的不足:在大方面受限于网络底层的拥塞控制,在个别网络极端糟糕情况下延迟会增大;RTMP标准协议对流控等没有端到端双向支持,恶劣情况下效果保障会比较复杂。
使用UDP私有协议,即构实现了端到端全链条可控,包括流控码控、冗余和重传等等,对抗恶劣网络更有保障。即构专门支持了把私有协议和格式转换成RTMP标准协议和格式,可以转码推向标准CDN等第三方服务器。
Q:跨地区、跨运营商如何实现?
A:要解决跨网通信的瓶颈的话,必须在接入的时候使用BGP,虽然成本会增加,但能够有效解决跨网问题。
跨地区的话,需要设计好分布式的网络架构,用优质的节点资源去保证全面覆盖,要有调度服务器进行全局智能调度。
Q:即构科技的方案最多可以支持几个人的视频互动?具体方案和视频直播有什么区别?
A:即构的狼人杀虫洞连麦技术在移动端最多可以支持20路,在PC端最多可以支持32路,目前有客户在用。
狼人杀技术方案和视频直播技术方案的区别还是很多的,这里只提一个点:狼人杀对超多路语音视频连麦的需求会更大,12路连麦是最基本的需求,连麦互动的频率会更加强;
而视频直播对超多路的连麦需求不会太大。因此,即构科技在技术上会对狼人杀超多路连麦和强互动的需求作出全面的支持。
Q:音视频编解码这块,即构的方案有什么特点?
A: 音视频的解码器,音频是AAC,视频是x264。在这个基础上我们做了两个事情:1)音视频编解码器的深度优化;2)音视频编解码器的智能调度策略。
(雷锋网此前也针对多路连麦技术做出了解读,欢迎查阅!)
雷峰网原创文章,未经授权禁止转载。详情见转载须知。