PP云全网首发史上最详细直播竞答故障分析及解决方案!

最近特别火的几个竞答直播平台被用户诟病技术卡顿频繁、画质略渣、背景声音low 的情况。特别是由于技术故障,奖金作废的问题,更是令参与用户唏嘘不已。

作者:曾小伟。PP云技术副总监,图像编解码、高性能计算出身,辅修AI(NLP方向),10年以上流媒体服务端开发及架构设计经验。

竞答直播再火也避免不了“技术故障”的吐槽

开年最火的无疑当属直播竞答平台的撒币大战。

当很多人感叹,知识终于能改变命运的时候,才上线到现在不过短短十几天,直播竞答APP们却经常bug不断。有用户反映冲顶大会经常直接在第一题便卡住不动了,在后续就是技术故障页面了。芝士超人的视频虽然看起来比较正常,但是题目弹出时还是出现了延时,一度被用户吐槽。

PP云全网首发史上最详细直播竞答故障分析及解决方案!
PP云全网首发史上最详细直播竞答故障分析及解决方案!

自上线以来,冲顶大会官微经常因为技术故障“跪榴莲”,至今为止,微博的道歉次数比有些用户的复活次数还多。关于如何解决卡顿的技术问题,各大竞答平台目前还未给出官方的解决方案。

PP云全网首发史上最详细直播竞答故障分析及解决方案!

为此,PP云的工程狮们特别为了获得奖金后就能“走向人生巅峰、出任CEO、赢取白富美”的我们,连夜抓包分析,整理出了全网首发、史上最详细技术难点解惑以及解决方案,希望跪榴莲的程序猿们可以通过此文向撒币的老板们领鸡腿!

关于直播竞答方案的一些技术简析

想要了解直播竞答技术问题频出的原因,还得先了解一下该程序的架构。通过对冲顶大会竞答APP的使用和抓包分析,可推测该程序使用的技术架构大致如下:

PP云全网首发史上最详细直播竞答故障分析及解决方案!

>>>题目的获取和答题

获取题目、答题,都是客户端通过HTTP接口访问APP Server进行的。

获取题目的API抓包如下:

PP云全网首发史上最详细直播竞答故障分析及解决方案!
PP云全网首发史上最详细直播竞答故障分析及解决方案!

我们从这个抓包请求中,可以看出,请求的URL和Response中都带有UTC时间信息(Unix timestamp),其中的回复消息报文中,带有showTime字段,应该就是该题目在客户端展示的时间了。

这个时间翻译成北京时间就是:

PP云全网首发史上最详细直播竞答故障分析及解决方案!

>>>题目和画面的同步

我们知道,直播竞答中的题目显示时间,和主持人画面需要做同步,如果题目展示时间与主持的念出题目的声音画面展示一致,那么体验就会很好

题目的展示时间(UTC时间),可以选择与某个基准时钟做比较后同步,可以选的方案如下:

  • APP所在手机本地时间
  • APP从服务端同步的基准时间
  • RTMP码流中的时间戳
  • IM消息流中带的时间戳

经过对直播竞答的RTMP码流抓包分析后,发现同步的基准时钟应该不会是RTMP,而可能是手机本地时间或APP服务端时间,通过这两种时间做同步,必然会导致题目显示与画面时差较大的情况,这个时间差的大小完全取决于RTMP直播的端到端延时了,中间的任何一个链路不稳定,都会加大延时。

下图是RTMP抓包的时间戳详情:

PP云全网首发史上最详细直播竞答故障分析及解决方案!

>>>播放主持人画面

主持人画面的播放已经是相当成熟的技术,经过互动直播行业的洗礼,使用cdn推流和转发已经不存在任何技术门槛。

从下图可以看到直播时的拉流URL等细节:

PP云全网首发史上最详细直播竞答故障分析及解决方案!

在此需要注意的是,导播可能使用OBS等推流工具,或是硬件导播方案,实现推流时的转场等操作。

>>>题库的设计与使用

题库通过数据库+缓存存储题目,可能的访问路径是用户客户端通过APP server代理访问题库,或是APP server告知用户客户端题库地址,用户去访问。

这两种方案均可实现,差异不大。

最近直播竞答的故障频发的原因分析

最近的直播竞答中,经常出现的一些问题是:

  • 直播卡顿
  • 画面花屏
  • 题目与画面不同步
  • 题目获取失败
  • 答题提交失败

针对这些问题,下面分别来针对性分析下可能的原因:

直播卡顿

直播播放卡顿通常是视频CDN到用户终端的链路质量不好造成的,例如用户在弱网环境中,或者服务方采购了劣质CDN服务。如果是CDN服务质量较差,那么弹幕上会有一部分人吐槽卡顿了。

另外一种可能性是主持人的推流链路质量较差造成的卡顿,这种场景下,弹幕上所有的人都会吐槽卡顿。

画面花屏

画面花屏的根本原因是,客户端播放器拿到的码流数据包出了问题。当码流的传输链路中出现丢包或数据损坏时,客户的解码器用这些有问题的数据去解码,轻则出现花屏或卡住,重则(解码容错性做的不好时)APP闪退。

最终分析下来,还是主播端/客户端到CDN网络太差,或是CDN服务质量较差。另外,还有一种概率非常低的可能性,主播端的编码器了出现问题。

题目与画面不同步

前面介绍过题目与画面同步的原理。在直播竞答这个场景中,题目显示与画面内容有较大不同步时,是会非常影响体验。

我们知道对于RTMP直播,经常会出现延迟的累积。大家之前可能有这样的经验,在某些互动直播平台看直播一段时间后,刷新下页面,主播的画面会前进1~2分钟,这就是RTMP累积延迟的表现。

题目画面不同步的原因,无外乎三点:

  • 播放的时间不对
  • 题目获取的时间不对(比如请求题目)
  • APP端展示的逻辑出错

题目获取失败、答题提交失败

这两者都是调用了APP Server的相关接口来取得,当HTTP 请求获取不到正确的数据时,这些接口就会失效,导致用户不能看题或者答题。

具体的原因分为以下几种:

  • 获取题目或者答题的接口程序不堪重负,不能服务更多

获取题目的操作,是静态资源获取,可以通过CDN加速,风险稍小,但是答题的请求是不好通过CDN缓存的,APP server需要真实的判断每个用户的答题情况,这时,如果接口程序的处理能力不足,就需要杀程序猿祭天了,再展开来讲,也可能是数据库或者缓存性能的问题,DBA的脖子也需要洗洗干净。

  • 服务机房的带宽或其他硬件能力不足

运维人员不能正确预估业务访问对机房硬件和带宽的压力,使得这里成为瓶颈,大量的并发访问会以5xx告终

关于直播竞答解决方案我们是这样做的

高质量自建+商业混合视频CDN保证直播流畅

PP云全国自建的CDN 节点约400 个,约有10Tb 带宽储备,节点几乎覆盖全国所有省市及运营商。PP云集视频云直播、云点播、云上传、云转码、云存储、云统计等功能于一体,多平台全方位支持客户各种视频场景的业务需求。

海量并发直播运维保障经验

PP云凭借PP视频十年媒体技术和服务经验,融合流媒体技术、P2P、CDN 分发、海量存储、安全策略等,可应对像竞答直播这样上百万人的高并发。

独创的画面题目同步方案

基于目前同步方案的缺点,PP云设计出独创的视频流与题目同步显示方案,让竞答参与者得到最好的答题体验。

业内领先的IM方案保证弹幕实时性

对系统CPU资源占用更好,更少卡顿的IM方案,更有利于保证弹幕实时性,降噪处理,抗丢包,在竞答参与时体验更好。

领先的题目获取与答案提交方案

通过加密的HTTPS 通道和IM长连接通道混合使用,传输题目与提交答题内容,保证可用性、安全性、及时性。WebCDN对题目获取进行一定的加速,可减少AppServer的压力。

苏宁旗下子品牌PP云已累计服务客户超过2000个;PP云凭借PPTV 十年媒体技术和服务经验,融合流媒体技术、P2P、CDN 分发、海量存储、安全策略等构建的专注视频领域的一站式SaaS 服务平台。PP云集视频云直播、云点播、云上传、云转码、云存储、云统计等功能于一体,多平台全方位支持客户各种视频场景的业务需求。

weixin.qq.com/r/HTkMFAL (二维码自动识别)

原文链接:https://zhuanlan.zhihu.com/p/33057702

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/16347

(0)
上一篇 2022年11月16日
下一篇 2022年11月16日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml