网易云信刘启钧:可穿戴设备将是智能终端的下一个引爆点

随着智能穿戴设备的普及,儿童手表市场迅猛增长。在众多需求领域,儿童智能手表的沟通、社交和安全需求变得十分紧迫。那么我们该如何通过各种方式实现一对一或者一对多的实时视频对话功能? 如何通过安全而又稳定的网络传输能力确保家长随时可见,提升儿童在社交过程中的互动体验感? 网易云信刘启钧在 TGO 鲲鹏会深圳分会活动中,分享其在可穿戴设备领域的技术实践及案例。以下内容整理自活动现场分享,在不改变原意的基础上有部分删减:

网易云信资深架构师刘启钧在活动现场分享

在网易内部有很多产品,其中涉及的领域有游戏、教育、音乐、新闻、电商等等。2015 年是网易云服务的开放元年,网易云信作为首批服务推出,开发者通过集成客户端 SDK 和云端 OPEN API 即可快速实现即时通讯功能,2016 年 9 月,视频云功能也正式推出。

网易云信视频解决方案 NRTC,如何做到工业级?

这套音视频的解决方案,已经经过了十多年的技术累计和迭代,目前是非常成熟的工业级的功能完整解决方案。

在它的架构图里,主要保留了流媒体相关的核心模块。左下角是音视频客户端的 NRTC,包括有 PC 端、iOS、Android 端等。在这之上是我们的 MCU 媒体服务器,在客户端上 NRTC SDK 会采集音视频数据,编码发送到媒体服务器,媒体服务器把相关的数据流发到其他的客户端。同时 MCU 媒体服务器也能够把收到的相关数据流转发到 NRTC BMS(互动直播服务器),在互动直播服务器上对所有数据流按一定规则进行混音和混屏,合并成一路流后推送到 NRTC 直播源站服务器,在服务器上通过 NCDN 进行海量分发,用户通过 NRTC Player 即可进行拉流播放。

客户端除了提供 NRTC SDK 以及 Player 以外,我们还提供了推流 SDK,能够直接推流到源站进行 CDN 分发。在架构图中,左边的实时系统基于 UDP 协议,右边的推拉流基于 TCP 协议。NRTC 方案比较全面,能满足多场景业务需求。首先 NRTC 可以帮助用户实现实时音视频通话功能,支持双人及多人的实时音视频通话,这个功能可以用于音视频交流、在线教学、狼人杀、多人视频会议等多种场景。其次 NRTC 能满足直播需求,高质量的实时性直播可以用于视频直播、游戏直播、教学直播等场景。结合音视频和直播技术,我们可以实现互动直播功能。互动直播是基于实时音视频低延时的特性,通过控制 C 端用户上麦、下麦形成互动。当然我们也有点播服务,短视频、录制、美颜以及关联服务。

实时音视频架构及技术优势

简单来讲,实时音视频可以划分为三部分,包括客户端、业务服务器、媒体服务器。

目前客户端提供了全平台的 SDK。 在客户端 SDK 内部,主要分为三部分。首先是 App 协议长链接,这是基于 TCP 加密私有协议实现的,主要功能是认证、信令、节点分配等。其次是媒体数据处理,包括音视频采集,音视频前处理,以及音视频编码。最后是网络收发包,包括私有协议封包,可靠性保障,网络层发送等。所有的媒体数据流基于加密 UDP 私有协议实现,客户端会把数据送到媒体中转服务器,中转服务器会中转相应的数据包,转发到其他的客户端,其他客户端同样做相应的网络收包。再往上就是音视频的解码,还有就是音视频的后处理,音视频的播放。

通过点对点的音视频播放流程,主要是分为国内情况和国外情况。

就拿国内来说,用户 A 和用户 B 发起实时音视频通话,用户 A 通过加密协议到服务器发起通话请求,服务器通知被呼叫的用户 B,同时业务服务器也会到后台分配服务器集群获取最佳通话节点。当用户 A 和 B 拿到中转服务器的地址以后,他们会进行登陆的操作,双方登陆成功以后,双方就可以进行实时的音视频通话。同时,在点对点我们也会尝试 P2P,如果直连线路可以连通,也会作为数据传输的一种选择。在这通话中如果客户开启了服务录制,中转服务器也会把音视频数据中转到录制服务器,在录制服务器会做数据的混音混屏写文件,通话结束以后通知第三方应用服务器。

如果两个用户都在国外,大致流程跟国内是一样的,同样会分配就近最佳的线路。一个用户在国内,一个用户在国外,这种情况下我们会采用代理加速服务器来降低用户端到端的时延。

如何优化实时系统

为了将这套实时系统做到更好,我们做了核心能力的优化:

1. 网络动态优化

实时检测当前端到端用户的带宽,通过检测带宽,我们会实时调整音视频传输的码率,同时也会有智能 FEC,PLC 算法来保障弱网环境下音视频通话的流畅稳定。此外,还会在全球部署节点,通过智能选路目前做到延时小于 200 毫秒。

2. 音视频录制

提供点对点和多人音视频的客户端录制以及服务器录制,服务器录制音视频文件直接对接到点播平台,可以非常方便对录制文件进行转码,在线播放等操作。

3. 可扩展

客户端 SDK 开放了部分接口,外部采集接口,允许用户指定自己的数据源,比如文件或者一些特定的采集设备;前处理接口,SDK 内置了简单的美颜滤镜,对于一些高端的玩法我们允许客户使用定制的语音和视频前处理算法,比如变声,特效美颜等。

4. 高音质

高音质要是针对声音,目前我们支持 8kHz(narrowband) 到 48kHz(fullband),同时我们也支持智能的 3A 算法,包括降噪、回音消除、自动增益等。针对音乐教学场景,会进行深度调优保证音质效果。

5. 高画质

独家的视频画面增强算法,降低马赛克提升画面清晰度;清晰度最高支持 1080P。

6. 全平台支持

目前我们的 NRTC 支持 iOS、Android、Window、macOS、Web 主流平台;支持点对点,多人室音视频通话和互动直播功能;深度兼容适配大量设备,支持云端实时动态兼容适配,支持硬件加速。

消费类电子产品焦点在智能性,可穿戴设备是智能终端的发展方向

消费电子沿着智能性和便携性两个维度发展。在过去几年,市场关注的焦点在于智能性维度,即设备从功能型向智能型的演变 ; 直至谷歌眼镜才引发了市场对便携性维度的关注。目前,消费电子产品从可携带型向可穿戴型的演变刚刚 开始,未来甚至会向可嵌入型演变。

在众多的穿戴设备里面,我们目前瞄准儿童智能手表沟通需求。

儿童智能手表的痛点

以前如果不在父母身边,小朋友碰到突发的情况,只能借助老师的手机联系父母,比较不方便。最近几年,很多家长都给小朋友买了智能手表。但是,现在大部分智能手表的主要功能依然是传统的文本和语音通话。随着社会环境越来越复杂,需求也越来越多样:比如很多家长如果不看到小孩子周边的环境,就不太放心;比如随着小孩社交互动需求的增长,小朋友也想看到小伙伴们具体在做什么,而不是仅仅通过语音聊天。

针对智能手表的这些痛点和需求,我们推出一套全新的解决方案。传统的语音聊天是通过通信获得一对一以及一对多的文本和语音信息,而针对实时的视频互联互通,可以让家长放心,同时也增加小朋友社交的互动乐趣。

和传统的智能手机相比,手表有独特的需求:第一,智能手表是穿戴设备;第二,由于应用的人群主要是小孩,在这种情况下,需要满足这两个需求,尽可能地做到低功耗和时长需要保持在 10 分钟以上;第三是画质,因为我们要做实时的视频互动,家长要看清楚孩子周围的环境,画质也是比较重要的问题;第四个是音质,穿戴设备使用环境会比较复杂,小朋友会在一些嘈杂的环境中使用,在这种情况下,就需要非常清楚孩子传达的声音,如果手表或手机音量太小,或者有回音的话,就会影响通话质量;第五是 SDK 包大小的运行,我们会尽量保证包的大小做到极致,满足当前通话的技术模块;第六个是运存,在通话过程中会占用大量的运存,要做相应的优化降低内存的使用,不然会影响到手表后续的功耗,甚至可能会影响其他方面的使用。

针对智能手表的特殊需求,我们做了一些特殊优化
1. 音频优化

智能手表主要的诉求在于沟通,家长需要很清楚地知道孩子在说什么,所以音频采样率一般 8kHz 到 16kHz。而手机的业务会比较复杂,特别是一些音乐教学场景,需要保证高音质。音频编解码方面,手表会优先使用低功耗编码器,而手机则是为了更多的灵活性,以及应对更复杂的网络环境,所以我们会使用复杂的编解码。弱网优化方面,我们为手表定制一个低功耗 QoS,手机是使用全链路的智能 QoS。

2. 音质方面

主要是回音以及音量等问题,在手表上会采用性能消耗低的回音消除算法 AECM,并进行特定的调优,手机会采用效果更好的 AEC 算法来保证效果。

3. 视频优化

首先是分辨率,手表的使用场景下追求高分辨率并不是一个强需求。所以根据手表的尺寸以及客户的需求,定制一个合适的分辨率,甚至会采用比较低的帧率来进行通话。视频编解码方面,手表采用硬件编码降低功耗,手机这边是软件 / 硬件编解码来保证效果和兼容性。同样手表视频也会有低功耗的 QoS,手机是全链路自动 QoS。同时也会和手表厂商进行深度的合作,根据不同的需求精简 SDK 体积以及运存占用优化来提升音视频通话效果和功耗降低。

目前云信音视频解决方案主要是两套,一套是云信独立音视频架构,主要是适合于已经有了 IM 功能的手表厂商,我们提供仅包含音视频相关能力的 NRTC SDK,这套 SDK 中不包含信令等相关内容,需要厂商自己去实现会话发起,挂断等通知;另一套是带 IM 音视频架构,这套方案把通信服务和视频服务进行了深度的整合,包括一些 IM 的文本消息、语音消息,音视频通话等功能,同时也支持音视频呼叫发起,挂断等信令。

作者 | 刘启钧
整理 | Bella Wu
责编 | Rainie Liu
(0)

相关推荐