这么好用的低延时直播网易云信竟然将它开源了?
2023-11-29 次
这么好用的低延时直播网易云信竟然将它开源了?自上世纪末,流媒体直播技术兴起以来,伴随着网络基础设施的发展脚步,直播也同频共振般地起势。而近年来 AI、云计算、音视频等技术日趋成熟,以及新冠肺炎疫情带来的“宅经济”刺激,使直播行业的发展势头被进一步激活。
根据中国互联网络信息中心(CNNIC)发布的《中国互联网络发展状况统计报告》统计数据显示,到 2021 年 6 月,中国网络直播用户规模已达到 6.37 亿人,直播市场规模接近 3000 亿元。
通过网络直播,你可以轻松观看到大洋彼岸正在进行的紧张体育赛事,也可以足不出户就阅尽祖国的大好河山、日出日落,甚至与 6000 万陌生人一起“云监工”火神山医院建设进度开云网址,为疫情防控力量点赞。
或许你曾熬夜守在电商直播间,在秒杀倒计时中,因延时被人捷足先登;也或许在上网课时,因延时错过了重要的知识点;还或许在体育比赛关键时刻,因延时被提前“剧透”了结果。
与声和光在介质中的收发及传输一样,音视频数据的编解码和传输同样需要时间。音视频直播的传输链路主要涉及采集、预处理、编码、数据传输、服务器转码、解码等环节,每一环节都会产生延迟。
量变引起质变,当这些分布于各个环节的细微延迟不断叠加,就会形成整体直播的延时,进而折射到用户体验上开云网址。
通常来说,整个链路的延迟可分为 3 个类型:设备端处理延迟、端与服务器的传输延迟、服务器间的传输延迟。
● 设备端处理延迟:与快递发件前打包和收件后拆包相似,数据也需经过采集端的采集编码、打包发送以及播放端的收包解码、渲染播放。延时与硬件性能、采用的编解码算法、音视频数据量等强相关。
● 端与服务器的传输延迟:与快递员的揽收和派送相似,这里的延时通常与客户端和服务器间的物理距离、客户端和服务器的网络运营商、终端网络网速、负载和网络类型等有关。
● 服务器间的传输延迟:就像快递在各个物流分拨中心、中转站的流转,数据在服务器之间排队、传输、流转,延时与传输路径的选择有关。
这 3 种类型的延迟,除了设备端延迟与硬件性能强相关,后两者之和便是业界重点着力优化的“端到端延时”。
3~5 秒的延时常见于国内多数的 CDN 直播形式中,这些场景主要采用 HTTP-FLV 和 RTMP 协议的传输形式,如:游戏直播不强调互动性,关键帧延时通常在 8~10 秒;赛事直播对流畅性要求更高,一般会选择 HLS 协议,延时会达到 10 秒以上。
随着“全民直播”到来,直播模式和内容也在不断创新,连麦直播、在线课堂、电商直播等新模式不断涌现开云网址。采用 CDN 直播,对这些强调互动性的场景来说,延时超过 1 秒,玩法可能就无法进行下去了。
它能适用于观众与主播频繁互动、对实时性要求高的场景,使二者之间的内容延迟控制在 300ms 内,真实还原线下面对面的交流体验。但此方案在网络优化、回声消除等问题上依然复杂,最重要的是实时音视频方案以时长计费,通常实现成本较高。
于是,“优等生”低延时直播提供了一个解题思路,找到了两者之间的平衡点,在可接受的延迟下兼顾更强的直播能力,带给用户更佳的互动体验。既能满足主播与观众间低频次的互动需求,使二者之间的内容延迟控制在 1s 左右,又能支持百万人同时在线,同时将成本控制于 CDN 和实时音视频之间,使方案的整体成本更加可控。
有需求的地方,就有闻风追赶的人。事实上,在洞察到市场对低延时直播客观存在的需求后,嗅觉敏锐的各大云厂商都陆续推出了各自的短延时、低延时、超低延时直播产品。
传统直播领域存在着三大指标:首屏时间、延迟、卡顿率。低延迟直播技术的难点在于:如何实现卡顿率持平甚至更优于 RTMP 拉流技术的前提下,大幅降低首屏时间和延迟,从而带给用户更好的直播体验。
工欲善其事,必先利其器。作为网易智企旗下的融合通信云服务专家,网易云信融合了自身在 CDN 和 RTC 领域多年的技术积累和经验沉淀,结合 WebRTC 标准的媒体流技术,在首屏时间、延迟、卡顿率方面做了深度的优化。
假设用户推流端的 GOP 是 5 秒,在某些情况下,拉流端需等待接近 5 秒才能收到第一个 I 帧,首屏才能开始渲染。这对强互动性直播场景来说是不可接受的。
网易云信的解决方案是在媒体服务器里进行 GOP 缓存,缓存最近 1-2 个 GOP 的媒体包在 Server 端。当客户端和媒体器媒体连接成功后,先发送 GOP 缓存里的媒体包,再发送当前的媒体数据。客户端在收到媒体包后,需要根据一定的策略对齐音视频包,再加速追帧。
在具体的实践过程中,需注意 GOP 缓存大小、客户端的 Jitter buffer 大小的配合、GOP 缓存里音视频的对齐、不同的推流端不同 GOP 长度的适配等情况。
若推流端设置的 GOP 较大,当拉流客户端媒体连接成功后,会一股脑地向客户端发送全部的 GOP 数据,可能会造成客户端缓冲溢出或其他问题。这时 Server 的 Pacer 平滑发送就需发挥作用了。
直播行业之所以能够蓬勃发展,在技术方面,CDN 厂商的云端能力起到了很大的推动作用。CDN 加快了边缘节点的回源速度,边缘节点又加快了拉流终端的接入速度。
为了加快回源速度,回源媒体服务的选择会尽可能接近 CDN 的区域中心节点;为了优化客户端的接入性能,拉流媒体服务器也要尽可能的接近拉流客户端,因此媒体如何迅速地从回源媒体服务传输给拉流媒体服务就至关重要。
WE-CAN 很好地承担起了职责。作为网易云信自研的大规模分布式传输网络,WE-CAN 通过对各种资源智能调度,来实现全球任意两个媒体服务器之间的快速、稳定传输。WE-CAN 起到了对比传统 CDN 更迅捷,更稳定,更智能,覆盖范围更广的加速传输的作用。
网易云信支持标准 WebRTC 媒体流接入,并通过深度优化 GCC,ARQ,FEC,RED 等各类 QoS 策略达到自适应匹配各种复杂网络的能力,在 40% 丢包的情况下,依然能流畅直播。
前不久,网易智企发布了“易+”开源计划,并正式开源网易会议组件,帮助各行各业用户构建稳定可靠、高清易用的专属会议系统。
过去几年,中国开源发展迅速。越来越多的开发者加入了开源贡献行列,以满腔才华和热情贡献技术,推动全球开源生态的进一步繁荣。同时,高质量的开源项目已成为基础设施的重要基石。数据显示,90% 以上的企业业务已构建在开源软件、开源项目之上,开源的影响力正以数字量化的形式呈现在世人面前。
我们开放了信令交互流程,支持标准的 SDP 协商和 ICE 建连,开发者只需集成一套低延时播放器,就可实现同时对接多家低延时直播厂商,大大减小包体积的增量。
同时,针对低延时直播场景深度定制了 WebRTC 引擎,支持 AAC、B 帧和多 Slice;并对首帧和端到端延时都进行了优化,目前首帧时间控制在 200ms 左右,端到端延时控制在 1s 以内。
为了方便在现有播放器集成低延时直播引擎,网易云信还开源了基于标准 FFmpeg 插件形态的低延时直播播放器插件,开发者只需要修改少量代码就可让现成的播放器具备低延时直播的能力。
未来,网易云信还会开源低延时直播引擎的裁剪版本,进一步优化包体积和各种播放指标。并继续推出开源的低延时直播推流引擎和低延时推流插件,提供低延时直播的全链路解决方案,进一步降低开发门槛,推动低延时直播行业的快速发展。
秉持着开放与分享的技术态度,我们将始终致力于通过高质量的开源项目,与行业共同探索开源的巨大社会价值。