7月16日,亚太内容分发大会上,阿里云高级产品运营专家俞翔受邀出席,并分享了基于CDN网络构建超低延时直播的场景实践。以下为演讲原文。
近几年,直播带货已经逐渐走进大众视野。在今年上半年受疫情原因影响,直播营销市场被加速催熟,这倒逼着企业探索线上业务。传统高度依赖线下场景的行业也纷纷通过直播进行自救。“直播+”成为了趋势,不少商家利用直播平台与广大消费者互动,创造了新的服务与经营模式。
在这个过程中,无论是旅游、餐饮或者传统消费业,各行各业都会把直播作为新的营销手段触达最后的消费者。然而,与原来的秀场直播不同,电商直播过程中会面临更多挑战,如何把直播互动的环节做好,将观众和主播或者后台的管理人员、运营人员串联在一起,至关重要。
从最初的秀场直播开始到今天为止,整个直播的链路基本上已经实现标准化。主播在线下无论使用PC还是移动手机,都是在本地通过客户端实现采集编码,并通过推流的形式到直播中心,再经过转码等媒体处理,通过云厂商CDN网络,再经过RTMP实时的方案或者用FLV、HLS的方案,最终传递到观众侧。
这个流程是单向的过程,直接从主播到观众。过程中的互动比如评论,是在音视频流以外的旁路实现的。
很多观众希望跟主播有进一步的互动,比如音视频层面互动,延时就成了关键的制约因素。
我们现在推流都是用到RTMP,拉流观看有用到RTMP、HLS或FLV,这三种协议延时的效果都是不同的。效果最好的是RTMP协议,也往往会因为各种原因会产生3-5秒钟的延迟。这种体验对于直播带货来说可以是一种灾难,当主播介绍一个商品或者介绍某一项专门特性的时候,观众想提出问题,等到他提出问题,主播看到的时候,往返10秒钟了,这会严重打乱主播的思路与其他观众的体验感,甚至会降低成交率。
在标准化的直播过程中,我们来分析整个链路的延时因素,从而寻找优化方案。
从最初的链路来看,采集、上行推流、CDN分发、下行拉流、解码渲染,都存在一定的延时,而且比例不同。真正跟延时相关的从CDN分发开始往后到拉流到播放这段,这部分内容是真正影响到观众体验的部分。根据我们对整个环节的延时原因的分析,RTMP是基于TCP的协议包,抗卡顿是产生延时的主要原因。随着5G时代到来,视频分辨率上升到4K、8K的时候,高带宽要求可能会造成更大的延时。假设当前720P视频直播过程当中延时3-5秒,4K、8K的话也许延时更大。
阿里云CDN团队对底层基础设施能力,包括对当下主流新协议进行分析,希望能够通过新技术栈应用来实现变道超车的作用。
阿里云对业界主流的WEBRTC、QUIC、SRT进行了多维度的技术预研及应用分析。
阿里云最终选择结合WEBRTC技术进行了低延时直播的探索实践,希望能够将用户带入到低延时的时代。
如下图所示,视频直播的基础设施是覆盖全球的CDN基础设施与CDN智能调度系统。左边部分是技术现状,右侧是我们希望达到的效果。从通讯协议再到上面流媒体层面做一些改进,从TCP协议直接迁移到UDP,UDP在卡顿方面有很大的提升,进一步确保实时交互体验。阿里云CDN希望能够把现在RTMP、FLV、HLS协议转化为WEBRTC协议,从而更好地满足主播和观众互动的需求。
基于这样的架构,阿里云已经推出了一个产品——低延时直播RTS(Real-time Streaming),它是在视频直播的基础上,提供具备CDN高性价比,又能满足大规模并发的低延时直播。
作为视频云基础设施,阿里云能够为企业提供一套完整的端到端直播解决方案,下图就是整体架构:
第一,改进推流端及拉流端SDK,满足云端协议栈的升级优化。
第二,复用云端基础设施能力。将视频直播过程中所需的编解码、录制等功能延续复用。
第三, 与原有的普通直播结合。方案可以支持用户很轻松地把低延时直播和基础直播、互动直播、视频AI能力有机结合起来。
在此架构基础上,阿里云CDN针对直播互动场景,进行了一些优化:
第一,优化网络架构。CDN是一种边缘节点的形态,将阿里云的CDN网络从之前支持RTMP协议升级成为WEBRTC,从传统的流媒体协议变成了实时传输协议,实现CDN网络部分的升级。
第二,提供一种推流两种拉流组合方案。方案允许用户开启两个模式:一是很方便把以前RTMP协议继续兼容下去。二是直接开通WEBRTC低延时能力,对于用户来讲不需要做很多工作,集成一个SDK就能享受这个能力。优势是可以直接兼容现有的推流方式,尤其是专业设备。
第三,全链路低延时监控工具。能够对实时的网络链路进行监控,并提供针对性优化方案,这对直播体验的保障十分关键。从整个效果来看,播放延时基本缓冲在1秒钟左右,有很大的改进。
第四,开放的协议信令。为便于客户自行开发拉流播放器,阿里云CDN也开放了下行节点支持WEBRTC协议将直播流从阿里云直播系统拉取,客户端让用户自主可控,快速搭建自身业务形态。
总结起来,阿里云CDN基于现有网络进行优化改良,对于整个低延时直播场景具有以下六个特性:
第一,低延时。具有毫秒级延时,抗弱网能力。经过测试验证,相同卡顿率下延时降低80%;
第二,无缝迁移。延续直播RTMP推流,不改变原有架构,仅需端上更新SDK;
第三,简单易用。功能丰富易接入,直播、点播、转码、截图、录制、安全审核等多场景功能;
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。