首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何实现低延时直播——支持多终端H5播放的超低延时直播方案

如何实现低延时直播——支持多终端H5播放的超低延时直播方案

原创
作者头像
用户7045070
修改2021-03-05 10:06:11
2.3K0
修改2021-03-05 10:06:11
举报

【摘要】

随着互联网视频应用的普及,各行各业对直播的应用需求越来越多,作为一名流媒体行业的从业者,亲眼目睹了视频行业的发展轨迹。

当前,全球遭受新冠疫情的冲击,导致视频通信的需求量大增,视频直播、视频会议成了人际交流的必备手段,各种视频云平台如雨后春笋般地成长起来。

但是,当前有很多对实时性和交互性要求高的应用场景,现有的直播云平台仍然无法满足用户需求,比如在线游戏(云游戏、在线博彩、互动游戏等),在线教学(互动课堂、VR直播课堂),手术直播(多地联动),应急指挥(抢险救灾、指挥作战),远程控制(无人驾驶车辆控制、机器人控制)等。

对于这类应用来说,它对于视频的延时是非常敏感的,往往差之毫厘,失之千里。所以,这些应用场景下必须采用低延时的直播解决方案。

然而,当前主流的直播云平台主要采用如下几种技术实现方式:

1. 源端采用RTP/RTSP/RTMP等协议推流给流媒体服务器,流媒体服务器再通过RTMP/HTTP/HLS/UDP等协议进行分发,终端通过RTMP/HTTP/HLS等协议接收。在这种情况下,端到端延时比较低的方案是端到端采用RTMP协议(延时在3秒左右),然而不支持终端以H5方式播放。因此,行业内普遍采用HLS协议在终端接收(多终端兼容),但是延时通常在10~30秒。

2. 源端采用RTP/RTSP/RTMP等协议推流给流媒体服务器,流媒体服务器再通过RTMP/HTTP/HLS/UDP等协议进行分发,终端通过WebSocket协议接收,然后自主实现H5端的软件播放器解码。这种方案比第一种方案延时更低,端到端可以控制在1秒以内。缺点是终端需要采用软件播放器解码,对于CPU性能比较高的PC终端来说,最高只能实时解码720P的视频,视频编码方式只能采用MPEG-2或者H.264 Baseline,无法支持更高的编码标准。对于手机终端来说,最高只能实时解码540P的视频,而且工作时手机功耗很大,电池使用时间大大缩短。

基于以上情况,我们经过多年研发完成了一套适用性更广的解决方案,该方案的实现方式如下:

源端:

采用H.264/AAC的视频编码技术,基于硬件编码器进行实时编码,然后基于UDP协议进行直播推流,最大程度降低编码延时;

服务器端:

基于可靠的UDP协议进行数据分发,最大程度降低数据分发的延时,同时基于异步I/O模式来有效提升服务器端的并发负载能力。

流媒体服务器程序采用C语言编码实现,支持多核多线程,同时采用异步I/O模式,因此具有很高的运行效率,单颗Intel E5系列 10核CPU可以支持2000并发用户访问。

终端:

基于H5标准自主实现低延时播放器,有效控制缓冲区大小,通常只缓冲一帧的图像数据,并调用本地的硬件解码器进行视频解码,从而实现快速实时播放的目标。

由于终端播放器完全符合H5规范,因此可以在PC、Android终端、iOS终端上正常运行。

综合以上设计,该方案在现有的互联网环境中运营的实际表现如下:

1. 在高带宽低延时的专网环境中(网络延时低于1ms),该直播平台的端到端延时在300ms以内;

2. 在单一运营商的广域网环境中(网络延时低于10ms),该平台的端到端延时在500ms以内;

3. 在高带宽的混合网络环境中(跨运营商的网络延时低于20ms),该平台的端到端延时在800ms以内;

当前,该技术已经在云游戏、在线教学、应急指挥、实时监控等多个领域得到了大规模应用检验,非常稳定。

然而,在有些应用场景下用户端带宽受限(比如用户使用4G等移动网络),因此后期还需要对该方案做进一步优化升级,主要技术方向是采用可伸缩编码技术和H.265/AV1等更高效的视频编码技术,从而给消费者带来更好的收视体验。

技术交流:

QQ(860861001)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档