这个夏天,没什么能够比一场酣畅淋漓的奥运比赛来的过瘾。但是,在视频平台直播观看比赛也有痛点:“卡顿” 和 “延时”。受限于不同地域、复杂的网络情况、传输速度等原因,当您还在为赛点焦灼的时候,隔壁已经传来欢呼声,观赛兴致瞬间全无。为了打造更加流畅稳定低延时的直播体验,越来越多企业关注低延时直播技术应用。
阿里云低延时直播RTS(Real-time Streaming)是在视频直播的基础上,进行全链路延时监控、CDN传输协议改造、UDP等底层技术优化,通过集成直播播放端SDK,支持千万级并发场景下的节点间毫秒级延时直播能力,弥补了传统直播3~6秒延时的问题,保障低延时、低卡顿、秒开流畅的极致直播观看体验。
为了能够降低直播的端到端延时,2020 年阿里云正式推出全球实时传输网络 GRTN (Global Real Time Network) ,是部署在边缘云节点之上的超低延时、全分布式下沉的通信级流媒体传输网络,用于支持视频会议、视频直播、实时音视频等服务。要使用 GRTN 提供的短延迟 / 实时传输服务,客户端可以通过浏览器的 webrtc 能力接入,也可以自行开发客户端协议栈来接入。
RTS NetSDK是什么?低延时直播SDK是由RTS NetSDK、推流 SDK和播放器SDK组成。其中,推流SDK将编码器输出的音视频帧发送给RTS NetSDK,播放器SDK从RTS NetSDK以帧的形式读取音频PCM数据和视频H264/H265数据。
Example: ffmpeg集成RTS NetSDK后拉ARTC流
RTS NetSDK是基于GRTN开发运行在客户端的协议栈。RTS NetSDK通过UDP传输层协议和GRTN上的SFU通讯,收发音视频数据。考虑网络条件未知性,RTS NetSDK集成了WebRTC的QoS算法来适应网络变化,从而提供优质的音视频传输服务。RTS NetSDK的轻量化设计使其非常容易被诸如ffmpeg,obs一类的开源框架所集成。
RTS客户端构成
RTS NetSDK承担推流拉流对接阿里云RTS服务桥梁,以包体积小、集成简单、对现有业务没有入侵为主要特点,帮助直播客户简单快速的升级传统直播到阿里云RTS直播。
RTS NetSDK 支持多平台,Android/iOS/MacOS/linux/Windows/RTOS, 支持多个开源项目集成的接入代码,ijkPlayer、obs、FFmpeg,而且阿里云推流SDK和播放器SDK已经内置了RTS直播推拉流能力。
RTMP是基于TCP传输的,RTS是基于UDP传输的。在网络稳定带宽足够条件下,RTS对比rtmp没有多少优势,但这种理想情况是比较难以保证的。传输协议上的差异,使得RTMP对于变化的网络没有太多的QoS手段,完全依赖TCP的拥塞控制。这种拥塞控制不以低延迟为目标。阿里云的RTS引入WebRTC的QoS技术,对于网络丢包有更好的容忍度。出色的带宽估计和拥塞控制,提供了细腻的网络使用策略。
另外,在Adobe Flash Player停止更新,RTMP在网页上已经无法再使用。客户要么选择延迟非常大的HLS技术,或选择WebRTC技术。RTS H5版本本质上是WebRTC,可以在网页上运行。
产品优势 低延迟 分发方案 特点 延迟HLS 支持广泛,类文件加速,分发技术比较成熟 一般10s以上
RTMP 多用于推流,国内遍地开花。用于客户端分发并不是主流 一般5s以上
FLV 多用于客户端分发,为目前国内主流方案 一般5s以上
阿里云RTS直播 使用udp传输技术 500ms左右(基于实验室数据)
HLS 直播因为其TS文件切片--整片读取的机制,其延迟至少都在一个gop以上。
RTMP、FLV直播,为了保证客户端的播放顺畅,往往会让客户端保持5秒以上的缓存。
阿里云RTS直播,基于udp传输技术,全链路针对延迟优化,最新v1.8.0版本已经可以将延迟降低到500毫秒左右。
抗弱网阿里云RTS直播是基于UDP传输的,通过应用WebRTC的先进技术(比如BWE、jitter buffer、NetEQ、FEC、NACK等QoS机制)以及自研的抗弱网技术,在复杂易变的用户网络环境中,比基于TCP传输的直播有着更好的流畅度和延迟。
包体积小RTS NetSDK拥有轻巧的包体积,以最新版本Android 和iOS为例:
平台 增量大小iOS 755 KB(arm64)
Android 0.9MB(arm64)
易集成