来自阿里云智能视频云的资深技术专家 —— 致凡,将以直播技术为主题带来《极致观看体验:超低延时直播技术》的演讲,为大家解答以上问题。
直播新趋势
直播技术的发展,需要从当下的直播趋势来看,2020 年的直播趋势,我认为主要有三点:
第一,在线直播的用户规模不断增长。根据著名的思科互联网趋势报告,预测今年直播新视频内容将占到整个互联网流量的 82%,其中直播流量将占到互联网流量的 17%。也就是说全球超过六分之一的互联网流量是直播流量。其实在中国我们也看到了直播用户的迅猛增长。预计今年直播用户的规模将达到 5.3 亿人。
第二,直播 + 的模式发展迅速。其中最受关注的是电商直播,各大直播平台都推出了网红直播带货、名人直播带货,受到全社会的关注。此外,直播 + 娱乐、直播 + 公益、直播 + 教育、直播 + 体育等各种形式方兴未艾,直播技术正在向社会的各个方面渗透。
第三,新的技术正在带动直播的发展。5G、AI、AR、VR 这些新的技术不断被应用到直播中。其中最重要的技术还是实时互动技术,它能最有效的提升用户的体验。想象这样一个场景,你正在观看一场精彩的世界杯足球决赛,场面很精彩,气氛很紧张。突然隔壁老玩家想起了一阵欢呼声,而你的屏幕上什么也没有发生,这是多么令人崩溃的一种体验。
这样的体验在过去的直播中很普遍,而低延时直播技术就是改变这种体验的关键。
直播技术三要素
说到直播技术,我们先看一下直播的三个重要元素:成本,质量和延迟。成本考虑是直播的人群触达率、设备触达率、带宽和存储成本。对一场直播成本考虑是如何高效便捷的触达到直播的受众,并且能够快速的规模化到百万千万的并发。
第二是质量,考虑的是音视频的画面清晰度,流畅度,卡顿率、秒开率这些指标。高清晰的画面和高保真的音效,能给人一种身临其境的感觉,增加直播的体验。
第三是延迟,指的是主播端的画面传递到用户屏幕所耗费的时间。低延迟是实时互动的关键。成本,质量和延迟之间是一种相互平衡的关系。
举一个例子,为了追求高质量,有时就不得不在延迟上做出让步。不同的直播技术,不同的直播场景都是在这三者之间进行平衡和选择。
有些直播场景对实时互动的需求不高。我们就可以选择增加时延,从而提升质量,降低成本,反之亦然。低延迟是目前直播的核心技术。
直播技术协议的演进
从直播协议的演进来看,它分成了三大块。第一块是专有协议,其中最主要的代表是 RTMP 和 RTSP 。这些协议需要专门的服务器支持。最开始的分发成本较高,同时也存在播放器的支持问题。
因为这些协议出现的时间较早,比如 RTMP 已经出现了快 20 年。目前各大厂商对 RTMP 都有很好的支持。但是由于苹果宣布 iOS 设备不再支持 Flash ,所以 RTMP 目前主要还是用在推流侧。RTMP 作为全链路直播协议将逐步淡出舞台。
接下来的直播协议是基于 HTTP 的分片协议。其中最主要的代表是苹果推出的 HLS 和安卓阵营推出的 DASH,类似的协议,还有微软的 Smooth Streaming 和 Adobe 的 HDS 。
因为这些直播协议底层都是基于 HTTP 的,所以适用性更好,设备触达率更高。对 CDN 的支持也更好。同时因为采用了分片转码技术,可以较好的适配用户的不同网络状况,能有效的降低播放器的卡顿率,提升画面质量。
不过这样带来最大的问题就是延迟,播放器需要缓存多个分片,导致延迟一般都在 5-30 秒。需要看到的是,这些技术已经在逐步向低延迟方面发展。包括苹果最近宣布的 Low-Latency、HLS 以及标准设计推出的基于低延迟的 LL-CMAF。
这些低延迟的扩展。根本的目的就是为了有效的降低时延。第三类也就是最近才兴起的基于 UDP 的直播技术。
其中最有代表的是 SRT 以及这一次我们阿里云推出的超低延时直播技术 RTS 2.0 这类基于 UDP 的直播协议,通过对网络的抖动进行主动控制,通过带宽预测、丢包重传等优化来降低时延。
但是这些协议还需要 CDN 厂商的支持和播放器的支持。目前阿里云的 CDN 已经全面支持 SRT 推流和超低延时直播 RTS。下面我们具体对比一下刚才说到的各种直播技术在延迟方面的表现。
首先我们大致把延迟分成几类,普通延时、优化延时、低延时、超低延时,比超低延时更低的就是实时通话了。
需要说明一点的是,通常的带宽电视的延迟一般是在 5 秒左右,低于 5 秒的延迟才可以被称为低延时。
大家看到在图上最左边的是 DASH 跟 HLS,它们的延迟相对较高。通常在 10 到 45 秒之间,接下来是 RTMP ,根据不同的配置延迟一般在 2 到 30 秒之间。但是通常的延迟在 10 秒左右。
图中的中部,我们看到低延时区域有 LL-HLS,LL-CMAF 和 SRT,他们的延迟大概能做到 2 秒以内。在超低延迟部分,就是我们这次阿里云推出的低延迟直播技术 RTS,延迟可以做到一秒以内。
图中最右边的就是实时通话。比如目前流行的 WebRTC,它的延迟能够做到 300 毫秒以内。需要指出的是阿里云的低延迟直播在连麦的部分主播和连麦嘉宾走的就是 RTC 的通道,延迟也能做到 300 毫秒。
传统直播延时的来源
我们具体看一下传统直播的延时主要是从哪些方面产生的。
我们把直播的电路分成 5 个部分,采集编码,上行推流,CDN 分发下行推流和解码渲染。我们以一个标准的 HLS 的直播为例子,看一下上述这五个部分对直播时延的影响。采集编码端的延时主要来自对视频编码器的选择和编码器内部的配置。不同的编码器配置。比如是否支持 B 帧,Look Ahead buffer 大小都会对延迟造成不同的影响。
上行推流和下行推流的延迟主要是直播协议所依赖的底层网络协议,TCP 或者是 UDP,TCP 是可靠协议,保证数据不丢包不乱序,代价就是增加了延时,而 UDP 能够更灵活的丢包策略和重传机制,可以有效降低网络的延时。CDN 分发中的延时,主要来自于转码和切片缓存带来的延时。
最后在播放端是渲染的延时主要是网络的延时和播放器的缓存。前面提到过 HLS 和 Dash 这样的协议,播放器必须缓存多个时间片,从而造成了最主要的时间延迟。
阿里云直播 RTS 延迟优化
首先需要了解我们阿里云的低延迟直播技术,RTS(Real Time Streaming)是如何在产生直播延迟的这几个关键路径上进行优化的。
在采集和编码侧我们进行了优化,采取了阿里巴巴自研的 H265 编码器 S265。这是一个高性能低延时的编码器。对比业界标准的 X265,在压缩效率上有 20%-30% 的提升,同时速度也更快。
此外还采用了自适应编码,ROI 编码这些智能技术,进一步提升画质,降低码率,从而降低时延和卡顿。音频方面采用了最新的智能降噪有效去除背景噪声。
另外直播推流 SDK 还集成了美颜、美妆、人脸贴纸、背景替换这些功能。并且充分利用了阿里巴巴的低延时 RTC 技术进行实时连麦功能。
在上行推流侧,阿里云的直播解决方案,支持 RTMP、SRT、RTP 等多种推流方式,也支持移动端、PC 端、H5 终端。CDN 分发我们利用最先进的载带高清技术进行转码优化。在降低码率的同时,也全面提升了画质的清晰度,支持 8K 的高清,千万级的并发的直播。
同时对 CDN 的传输链路进行了全方位的优化。前链路支持 RTP 同时利用智能路由降低时延。
在下行侧我们支持多种协议进行拉流,RTP、RTMP 和 HLS 拉流。在解码线上侧我们提供了播放器的 SDK,利用低延迟 RTC 技术,大幅度降低了播放器的缓存,增强了网络抵抗的能力,使得卡顿率低于 1%。
同时支持移动端、PC 端、H5 终端对视频进行后处理,进一步提升视频质量,同时支持 DRM 加密。
通过对上述全链路的优化,最终从整体上消灭了大部分的直播延时,实现了一秒以内的低延迟。
阿里云 CDN 低延迟传输优化路径
传统的 CDN 支持底层 RTP 协议媒体数据,通过 RTMP 帧传输。
在这个基础上,我们首先对下行链路进行了改造,让下行链路支持 UDP 协议,通过 RTP 进行媒体数据的传输,通过转码具备 AAC 和 Opus 的转码能力,这样就能大幅度的降低播放端的网络延迟和播放器的缓存,从而降低时延。
第二步就在这个基础上进行了上行链路的优化,让推流侧也支持 RTP,从而让全链路都支持 RTP 协议,通过 RTP 进行数据传输,从而进一步降低直播时延,同时也避免了不必要的转码。
在 2020 的云栖大会上,我们也重磅推出了阿里云直播 3.0 和阿里云低延迟直播 RTS 的升级,RTS 2.0。RTS 2.0 在抗弱网、开放性、秒开、兼容性、稳定性方面都相对 1.0 有了较大的提升。
阿里云直播 3.0 的一站式解决方案
演示图左边是推流端,我们提供了一体化的推流 SDK,支持 RTMP、RTP 推流、支持连麦、美颜、美妆、支持 H265 和智能编码技术。
中间是阿里的云上直播链路,依赖于底层阿里巴巴的全球 CDN 加速网络 GRTN,支持 RTMP、HLS、SRT、RTS 多种直播协议。
上面是强大的导播台和媒体处理中心能力,支持窄带高清、截图、录制、加密、时延、安全审核、视频 AI 等多种能力。
在最右边是播放端,我们提供了多终端的播放器 SDK, 具备强大的渲染能力,支持音视频的后处理,这是 DRM 加密,这是多种拉流方式,从而整体形成云端一体的一站式直播解决方案。
阿里云直播 3.0 的优势
第一是高性能推出了超低延时的直播技术 RTS 2.0,保障秒级的延时和低于 1% 的卡顿率。自研的窄带高清技术在降低码率同时达到千万级的并发。
第二是全球化,全球 2800 家的直播节点,130T + 的带宽储备能力分布 70 多个国家和地区,多直播中心,服务全球用户。
第三是多终端,提供推流 SDK 和播放器。SDK 的多终端和多协议支持。
第四是智能化,提供各种视频 AI 服务能力。包括鉴黄鉴恐、广告识别、语音识别等。
第五是数据化,提供多维度的数据监控和数据分析。
第六是行业化,提供多个行业的解决方案,让直播技术更好的为您的行业赋能。
这就是我今天的全部分享内容。希望大家记住一句话的话,那就是上云,就上阿里云,直播就用阿里云直播。谢谢大家。
「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。