编者按
赛事直播吸引着亿万观众的眼球,流媒体直播对于音视频技术提出了更高的要求。LiveVideoStackCon 2023深圳站邀请到火山引擎视频直播CDN技术负责人刘振华,为我们介绍火山引擎视频直播在抖音赛事直播中体验优化中积累的实践经验,他将从多视角、清晰度(画质)、延迟、稳定性多视角介绍火山视频直播是如何在大型赛事中实现好的流媒体观看体验。
文/刘振华
整理/LiveVideoStack
大家好,今天我分享的是火山视频赛事直播体验优化方面的实践。从2020年来,我们经历的两场主要赛事是抖音世界杯和亚运会,我会以这两场赛事为例来介绍火山引擎在哪些方向做了相关的体验优化实践。
首先我们看看赛事直播的特点:
价值方面:赛事直播平台可以吸引大量的观众,从而吸引广告商的投资。在直播过程中,平台可以在比赛间隙插入广告,或者在直播画面中加入广告赞助商的标识,从而获得广告收入。
趋势方面:数字媒体化持续增长,据中商情报网讯:截至2023年6月。体育直播用户规模为3.23亿人,占网民整体的29.9%。另外,电子竞技和流媒体直播方式息息相关。
要求方面:直播的方式对于技术也提出了相应的要求,例如多视角、高清、低延迟和稳定等。
接下来我会从以上技术要求出发,为大家分享火山引擎是如何在这些方面做出优化实践的。
火山视频提供了2种场景的多视角解决方案,分别是2D 多视角和VR 自由视角。
首先是VR方案。
VR的采集要求比较高,例如高码率100M+,高分辨率8K,高帧率50FPS,360°等。采集的信息量很大,如果原封不动从端上传,再下发到播放端,整体的成本、体验和卡顿都不太好控制。所以需要在云端做转码和优化,因此我们设置了云导播,对内容进行监控、调整、实时编辑。另外高清转码做了Tile切分,使用了FoV方案,把一个视频流切成多个视角,在客户端实现自由视角切换。
在传输方面,SRT在跨国传输实时视频时,可以快速重传丢失的数据包,从而减少了延迟和丢包对视频传输质量的影响。因为专业性问题,很多硬件直接支持SRT推流。
如图所示,观众使用支持VR (比如Pico)播放的设备即可体验自由的视角。
接下来介绍2D多视角方案。
在采集方面,使用多角度摄像头和多路主备传输;在服务端依然使用云导播和高清转码;另外设置多视角、多分辨率,以供预加载和自主切换。
观众可以切换不同的视角、解说,从自己喜欢的视角观看直播内容。
接下来介绍刚才提到的清晰度。
赛事直播提出了很多要求,当然也提供了一些条件,让我们可以做一些针对性的优化。
我将从影响因素、面临的挑战,和我们的方案给大家做介绍。
首先分析影响清晰度的因素,我们从主观和客观分为两类。
客观因素主要是采集、色彩空间、动态范围、分辨率、码率、编码策略和显示设备等。
主观因素包括视力、感知、难受性和色彩映射等。比如耐受性,如果看一个不清晰的视频,看久了其实也不会觉得不清晰,但是旁边放一个清晰的对比(刺激)下,那就很明显了。
为了保障清晰度准确,我们做了很多主观的视频评测,利用主观评测平台来确保评测是准确的。
我们主要从动态范围、分辨率、码率、编码策略、和感知这几个角度去优化清晰度体验。
在清晰度优化挑战方面,也面临着随之而来的流畅度低、带宽成本、兼容问题、计算成本和增加延迟等问题。
在编码优化上,我们也针对赛事场景做了相应的优化,例如码控、预分析和并行计算等,以优化编码效率,以计算换清晰度。
针对世界杯的HDR内容,我们设计了自适应Tone Mapping算法。传统的Reinhard,Filmic或者 Uncharted 2等Tone Mapping算法均使用固定曲线方法将HDR视频转换为SDR视频,转换得到的结果模式固定,无法适应多变的场景。针对这一问题,我们采用内容自适应的Tone Mapping算法,通过统计视频帧的亮度信息从而进行动态的映射,从而实现更优的转换效果。
在ROI方面,针对赛事直播,我们通过眼球仪追踪,以推理的方式搜集人眼数据,训练模型并进行合理码率分配。另外,通过ROI检测和编码相结合的方式,让码率在画面上的分配更加合理,达到相同码率下主观更优的效果。
在画质增强方面,通过自适应锐化、时空降噪、色彩增强和客户端超分等手段来提升清晰度。
在清晰度策略上,最高提供了12M,4K的码率,同时提供了12个档位,通过265、264双重编码格式,适配更多的机型。
接下来讲讲赛事直播中如何做低延迟。
我们先看下延迟的构成。
延时是因为数据堆积造成,主要是处理延迟(主要是在buffer)和传输延迟(inflight)。
我们的主要手段就是提升处理速度,减少buffer,降低传输延迟。
降低延迟最大的挑战就是卡顿。
降低buffer的大小,会影响视频的流畅度。因为buffer存储的是视频帧,如果buffer过小,视频在播放时可能会频繁出现卡顿、跳帧等问题,影响观看体验。当然也会间接影响首帧和成功率等。
我们建设了策略平台,会在其上积累很多策略,通过AB实验观察在各种场景下的QoS和QoE指标情况。
具体的优化方式有两种,第一种是基于FLV的方案。
在策略方面,分为起播优化和倍速优化。起播优化包括延迟起播、网络分级和云端联动;倍速优化包括起播倍速保护、网络&buffer自适应播放速度以及双阈值倍速算法。
在效果上,可以实现人均看播时长显著提升1%+,关注渗透1%+,电商人均支付订单数增加2%+,成本减少7.6%。
第二种是RTM方案。它的建连流程更复杂,首帧长,存在成功率低、卡顿高和首帧高等问题。针对这些问题,我们也做了相应的优化,如SDP信令预加载、UDP连通性探测等,并实现了端到端延迟小于1s的效果,卡顿减少22%,并达到QoE正向的指标。
讲完延迟方面的优化,在直播中必不可少的是稳定。
在推流架构方面,上行是多链路设备,系统支持两种方式,一种是两个流名,最终在端上播放整合;另一种是一个流名,在源站做auto merge。
在拉流架构方面,采用多源站+融合的方式,确保稳定性+资源弹性。
在和第三方厂商合作的时候也有回源+转推两种模式,另外客户端SDK 支持主备逻辑,可以自动实现主备切换。
在降级策略上,线路可以自动切换,方式有节点自动摘除和单实例摘除。
在调度策略上可以分为两类,离线规划和实时规划。
离线规划方面,如果是常规流量,会定时计算资源、容量结构、区域是否变化,然后求解并下发策略到系统,并可以做容量预分配,根据客户数据模型把资源打散,做跨区域备份保护。如果是区域突发流量,就需要实时规划,使用302调度做临时调整。另外也做了资源水位、覆盖质量和资源状态的监控。
此外,我们还做了重保运营平台。关注上行内容检测,下行人数等,所有关键信息集中在一个大屏显示,指挥官可以在现场的大屏上看到最关键的实时信息。
在单流链路监控上,可以看到每一路流的异常事件。通过技术手段监控每一路流的拉流质量,分节点、用户运营商、用户区域,按照质量倒排。
另外,我们会做技术审计,监测视频是否有黑帧、静帧,音频是否存在音频反相、静音等情况,并进行相应的数据播报。
以上就是我的分享内容,谢谢!
继续阅读
阅读原文