规模增长背后抖音如何构建直播体验优化

2023年4月27日

随着抖音直播用户持续增加,生态日渐丰富,在经历亿万规模化增长的过程之中,体验优化是必须要面对的问题,如何建立不同阶段的优化体系?如何抓住过程中的优化重点?另外面对业务增长诉求,面对新技术发展趋势,体验优化如何体现业务价值?新技术如何落地在业务之中?LiveVideoStackCon 2022 北京站邀请到火山引擎直播技术负责人周一楠,分享抖音体验优化过程的一些探索与实践。

文 / 周一楠

编辑 / LiveVideoStack

图片

大家好,今天我分享的主题是 “规模增长背后抖音如何构建直播体验优化”。

-01-

抖音规模化过程中面临的挑战

图片

首先给大家展示一张图,这是抖音在过往一段时间里的直播播放的并发量。这张图背后其实隐含着几个关键词。

  • 首先是 “增长”,抖音直播业务量级一直在持续增长,包括时长和渗透均保持增长的状态。

  • 另外是 “突刺”,代表着热点主播、热点赛事、热点事件等,导致直播量级经常出现较大的波动,这种波动对稳定性提出了很大的挑战。

  • 第三是 “场景”,从传统的秀场,到游戏,再到电商,最近一年拓展到竞技比赛、虚拟偶像、PICO VR,都在抖音直播中孵化,这些都是新场景的尝试。

  • 最后对应的是 “平衡”,场景越来越丰富,用户体量越来越大,除了需求的差异之外,我们也要理解并处理好不同阶段在成本和体验之间的平衡。

图片

今天我用思考总结 + 具象案例的模式来做分享,抖音去年关注度最高的是世界杯直播,整体直播量级完全超出之前预估。数据上来看,单场的 PCU 并发量最高为 3706 万,UV 值 2.3 亿,应该是目前规模最大的直播赛事。针对这样的量级变化,非常考验应急策略,尤其是稳定性,作为第一要务要保障,为此我们做了大量的工作。

  • 首先,直播全链路无单点,各个环节都会具备冗余灾备的能力,比如上行网络、源站、转码系统以及节点和节点之间的网络线路。

  • 第二,在分发层面单机性能优化和弹性扩缩容,最大程度的提升资源利用率和复用率。

  • 第三,总体容量保障,为了满足大规模观看 4K 分辨率要求,从整个行业去募集分发资源,通过融合调度系统,实现容量保证。同时在用户观看直播的过程中,配合容灾降级的策略,达到体验与稳定性间的最优解。

图片

另外具象来看,新的技术面对新的挑战。本次世界杯我们率先实现了大规模 4k 50fps 的超高清直播的行业首创。正常情况下,抖音默认的直播分辨率是 720p 或者 1080p,像世界杯这样超大规模的 4k 直播我们也是第一次尝试。另外竞技类比赛对延时的要求非常高,整体直播的端到端延时,最低情况下可到一秒钟。同时我们也进行了画质增强,支持 10bit 的 HDR,在色彩的饱和度、空间感都最大程度的还原比赛现场。

另外虽然 4k 画质清晰度足够高,但是不能一味的追求单一的直播体验指标,还要注意成本控制。期间我们使用火山引擎的 “极致高清” 转码技术,以保证最低的码率,最优的成本。最后这次世界杯,我们也创新的使用了 VR 直播,实现了 180 度和 360 度的 VR 3Dof 直播业务落地。以上种种优化升级,整个世界杯的过程中我们最终也输出了数十项核心专利,为后续沉淀和持续迭代奠定了基础。

-02-

抖音直播体验优化的体系构建

图片

第二部分主要介绍下抖音直播体验优化的体系构建。我们会从业务和场景出发做直播技术升级,关注用户的核心体验。同时,我们也会结合当前技术的成熟度、可能性、条件要求,对技术应用进行判断,期望寻找发挥技术价值最大化杠杆的地方。

在技术判断之后,我们会进行线下性能、体验的验证体系建设,设置好准入准出条件,并设计数据指标来做度量参考。最后线上部分以 QoE 为牵引,进行线上 AB 实验指标做持续调优,最终验证收益和价值回收。基于以上的循环模式,持续构建直播体验优化的体系,以上是我们构建的整体方法论。

图片

具象来看,在整个世界杯期间,用户最关注的核心体验之一是低延时。过往我们在很多场景也在做低延时优化,解决秀场中主播反馈慢,电商中介绍商品不及时,以及教育场景中老师授课的交互性差等问题,都取得了不错的用户正向反馈和业务收益。

这次竞技比赛对于延时的意义会更重要,最差的一种体验是观看比赛直播的过程中,这边还没看到进球,就已收到其他 App 的进球消息了。虽然有些夸张,但比赛的及时性是用户能够明显感知到的。因此低延时的技术判断和业务价值我们是确定的。在此之后,就进入到技术方案环节,我们需要了解延时到底发生在哪个环节?

从全链路角度来看,原流上行到接入节点,再通过源站到转码处理,之后分发到边缘最后在通过不同的协议,到用户最后 1 公里。在整个过程中,如链路图所示,每个环节都会产生延时。但其中播放器的缓存对延迟影响最大,在直播过程中,为了对抗卡顿,常规做法都会设置一定的 buffer 缓冲区,一般防抖 buffer 会设置在 5~8 秒,进而引入了延时产生。

图片

链路盘点清楚,我们重点解决主要问题,并在两个技术方向来降低延时。

第一个是基于 HTTP-FLV 的传输协议。第二个是基于火山引擎超低延时直播技术 - RTM。HTTP-FLV 是最广泛使用的流式传输方案,协议本身较简单,延时目前我们最优可以到 3s 以内。RTM 协议在某些层面和 RTC 有一定的共用技术,属于新型的直播传输模式,在抖音直播世界杯期间,我们也投入了使用,在 RTM 上可以将延时做到 1 秒以内。

图片

下面介绍下具体的优化方法。我们把 FLV 延迟进行了分类,分为初始静态延迟和动态消费延迟。针对不同的延迟有不同的优化策略。对于初始静态延迟,可以调低 Gop、转码延迟优化以及降低 CDN GopCache。对于动态消费延迟出现的 IO 消费慢、解码消费慢和渲染消费慢问题,采用不同的优化策略。其中 IO 消费慢可以采用卡顿优化、倍速播放和丢帧跳片。解码消费慢可以采用性能优化、动态码率和丢帧跳片。渲染消费慢会采用倍速播放、性能优化、动态码率和丢帧跳片。

图片

针对 RTM 传输协议,虽然 RTC 和 RTM 有一定的复用性,但也有一定差异性。直播场景中更加看重首帧的成功率和长时间看播的音画强同步率。

RTC 应用最多的是会议模式和教育小班课,技术层面,RTC 会维护一个网络长链接,无论 socketio 还是 websocket 采用哪一种方式实现,都会保证信令消息的可靠性和即时性,进而保障成功率和体验。RTM 的数据和信令也是分离的,但无长链接,需要做定向技术改造,比如使用预加载策略降低首帧,还有一些用户的网络不支持 UDP 传输,如果 UDP 不通,也会影响连接的成功率,需要做端口检测。为了提升成功率,因为 SDP 有冗余信息存在,所以也会把 SDP 进行压缩,变成 miniSDP 进行传输,通过 0rtt 或者一个 rtt 处理来提升成功率。另外因为抖音默认采用 feed 流模式,所以需要最大程度的去降低首帧时间。

在整个直播过程中,需要保证实时地强音画同步,尤其是在高清晰度的情况下,音频先触达,需要减少起播倍数播放,另外在分发环节上,RTM 的分发模式通过 CDN 的边缘节点进行分发,我们在服务端、客户端侧的组帧、解帧需要做定向优化,提升秒开的成功率和降低时间,这里不详细展开了。

图片

最后来看一下整体业务收益。两年前,抖音的直播延时大约在 7.9s。我们持续地在两个方向上进行延时优化,目前技术数据上来看,大盘均值可以降低到 3 秒内,RTM 场景在 1 秒内,均投入到了常规放量状态。业务价值上来看,无论是直播的看播渗透率还是看播时长、评论,亦或电商都有显著正向收益。同时因为减小缓冲区可以减少网络浪费率,从而降低 95 峰值进而影响直播成本单价,我们除了用户体验的收益之外,也获得了成本上的收益。

图片

除了低延时,我们发现在整个世界杯直播期间,用户对于画质的要求也是最高的。

首先我们先看下视频全链路的技术结构。从生产端编辑处理和视频编码,再上传到云端。在云端和转码环节上会进行视频的分析和理解,然后进行策略优化,进行极致超清的转码。相关的处理完成之后,会把处理好的数据通过边缘节点进行分发,最后再传输到消费端。消费端会对直播流进行播放控制,视频解码以及效果增强。整体看下来涉及端上行,云端编辑 & 转码,云端分发,最后到端上消费,涉及到的环节多而复杂,往往需要跨多领域配合以达到最优体验。

图片

现在抖音直播的分辨率大部分是 1080p 和 720p。世界杯期间我们期望带来 4k 的大升级,提供更高的清晰度。另外因为足球比赛的特性,运动激烈、纹理复杂、场景切换多,需要提供 50fps 加 HDR 模式,最大程度的还原比赛的临近感和冲击性。但这些画质升级的背后,也会带来视频数据量大、实时处理难度大等问题,我们又不希望引入额外的延时,同时使用尽可能低的码率,这些都有非常大的挑战。

图片

我们采取了以下优化思路来解决上述问题。首先进行策略优化的选型,比如判断软件编码还是硬件编码,档位配置,并对画质进行整体评分。策略决定好之后,再进行内部编码内核的优化,以及具体前后处理优化策略,最终保证画质最优。

拆开策略优化一共有三个动作:

首先评估是用硬件编码的模式,还是软件编码的模式,在足球比赛这样特殊的场景中,综合判断软件编码的效果往往比硬件编码效果更好,也更具定制化改造和优化开放性

其次进行前处理的预估,世界杯信号源支持 HDR,我们要把 HDR 的效果带给所有的观众,就需要在转码侧、分发侧以及端上都具备支持 4K HDR 的能力,否则就会出现图像偏暗的问题。但同时我们也要考虑到一些用户因为手机性能或者网络的原因,没有办法播放 HDR 视频,这就需要同时具备 HDR 转换成 SDR 的能力。在转换过程中会发现传统的 ToneMapping 算法,不论是 Reinhard、Filmic 或者 Hable,其本质都是固定映射曲线实现从 HDR 到 SDR 的转换,不可避免会产生一些信息损失,导致效果不好。我们设计了自适应 ToneMapping,通过统计视频内容的实际光照情况动态地进行 ToneMapping,从而得到更优的效果。

图片

另外,抖音世界杯直播支持多机位、多档位、多分辨率。我们通过多轮评测,制定档位码率的甜点值是多少,目的是为了能够用最低的码率达到最优的画质体验。

图片

前处理的环节中,重点讲一下时域 ROI 技术,为了兼顾视频码率和主观画质,我们采用基于 LSTM(长短期记忆网络)的时域 ROI 技术。通过人眼显著性区域检测和编码相结合的方式,让码率在画面上的分配更加合理。

但目前市面上没有专门针对足球场景的 saliency (显著性物体检测) 数据集,通用的 saliency 数据集在世界杯这类特定场景中表现并不理想。针对这一问题,团队专门制作了足球场景的 saliency 数据集,通过眼动仪追踪球迷观看球赛时的关注区域得到足球比赛的专用 saliency 数据集,从而极大增加了模型的准确性。针对足球场景中显著性物体较多,显著性区域分散的特点,团队对检测模型进行了专门的优化,在保证检测速度的前提下,提高了模型的召回率和不同场景的鲁棒性,从而实现更优的主观质量。

图片

编码器内核优化环节, 我们结合世界杯,梳理了过往比赛的测试序列,并根据特征选择包括球场、观众、特写等等,精简视频数量,目的是加快测试迭代,进而在控制码率、动作估计等进行定向优化。最终的效果从图中可以看出,在 PSNR、Vmaf 对比下,码率持续降低,同时速度在大幅度的提升,最终我们的码控偏差值也控制在 1% 范围之内。另外与开源项目 X265 对比,比 X265 的最快档位,速度还快。最慢档位,码率还低。

-03-

下一步的优化空间

第三部分,我们聊聊下一步的优化空间,这里更多的是一些对未来的探索和想法。

图片

在过往的直播体验优化的过程中,我们做了例如节点优化、极致高清、超分、音量均衡、分辨率升级和 HDR 等等。在业务情况不断发生变化的同时,用户的网络情况、设备情况也在不断发生变化。做了这么多优化,我们到底想要达成什么样的目的呢?我们最终沉淀了什么?或者有方式能达成灵活的策略吗?

图片

未来我们依然希望能够把音视频技术和数据驱动相结合,沉淀到策略中心中去。能够在不同的业务场景、不同的用户需求,提供针对性的优化策略,精细化打磨。另外业务每天都在变化,突发情况特别的多,也需要我们具备这样的技术手段,否则很难保证灵活的模式支持业务发展。

图片

最后,我认为直播体验优化是一个持续的过程,随着场景的新增,新技术的产生,我们一直在优化的路上。如果把稳定性看作 60 分的基础分,那么如果想拿满分,就必须在直播各个环节持续的优化。需要更低的延迟,更高的画质,更低的成本,甚至需要跳出直播流本身,与业务侧进行动态配合,以保证整个直播的最优效果。

感谢大家,这是我今天的分享。



图片

LiveVideoStackCon 2023 上海讲师招募中

LiveVideoStackCon 是每个人的舞台,如果你在团队、公司中独当一面,在某一领域或技术拥有多年实践,并热衷于技术交流,欢迎申请成为 LiveVideoStackCon 的讲师。请提交演讲内容至邮箱:speaker@livevideostack.com。


还可输入800
全部评论
作者介绍

LiveVideoStack

音视频技术社区

文章

粉丝

视频

阅读排行
  • 2周
  • 4周
  • 16周