美文网首页iOS音视频(直播 音频 视频)
直播专题问题排查-播放卡顿(二)

直播专题问题排查-播放卡顿(二)

作者: GitArtOS | 来源:发表于2020-06-03 22:44 被阅读0次

1. 播放卡顿的表现

播放卡顿的表现总结下来包括但不限于以下这些:

  • 频繁出现缓冲
  • 播放不够流畅,画面一卡一卡的

2. 常见播放卡顿问题排查

什么是卡顿?其实是指播放器渲染的帧率太低,比如:1s 显示 3~5 帧,或者渲染完一帧后,过很久才渲染下一帧。因此,我们需要排查,是什么原因导致了播放器无法流畅地渲染数据,通常可能有如下几大类:

  • 网络带宽不足
  • 播放设备性能不足
  • 视频流时间戳问题

2.1 网络带宽不足

一个完整的直播应用,简单来说数据流是下面这样的:

主播 -> CDN -> 观众

因此,直播出现卡顿,三个端都可能是问题的源头:

  • 主播端的网络不好,导致推流上行不稳定
  • 服务端的线路质量不好,导致分发不稳定
  • 观众端的网络不好,导致拉流下行不稳定

2.1.1 如何判断主播网络不好

主播端网络不好,直接影响到的就是千千万万的观众,因此,如果发现所有的观众都出现频繁卡顿,那么多半就是主播端的问题了。

(1)带宽测试

用带宽测试工具:http://www.speedtest.net/ 测试下主播的带宽,如果主播的上行带宽明显小于推流的码率,那么肯定会出现推流帧率不稳定。

(2)统计回调

一般的推流 SDK 都会统计主播推流的实时视频帧率,如果预设的帧率是 20fps,但是实际的帧率低得很多,比如 5fps,排除手机性能低的原因的话,多半也是网络带宽不足引起的。

2.1.2 如何判断观众端网络不好

观众是整个直播的终端环节,一般如果不是大面积的观众出现卡顿,那么很可能是这个观众自身的网络问题,可以考虑切换到别的 WiFi 网络,或者 4G 下播放试试,我们还可以通过如下手段,具体确认下是网络的原因

(1)带宽测试

跟主播端类似,我们依然可以用带宽测试工具,测试下观众端的带宽,如果该观众的带宽明显低于主播的推流码率,那么肯定会出现卡顿。

(2)网络质量测试

可以在观众端的网络下,ping 一下播放域名,看看当前丢包率是多少,一般好的网络,ping 值的丢包率是 0%

ping 一下播放域名.png

2.1.3 如何判断 CDN 线路不好

如果排除了主播端上行网络原因以及观众端下行的网络原因,那么,剩下的就很可能是 CDN 线路质量原因了。

关于 CDN 线路质量,一方面可以通过联系 CDN 厂商来排查,另一方面,也可以通过播放端的打点上报,统计出各家 CDN 的线路质量(比如:首开,卡顿率),分地区做一些线路的调整和优化。

2.2 播放设备性能不足

越高清的码率,对解码的要求也越高,很多手机性能不足以支撑 720P 甚至 1080P 的视频解码,特别是很多低端的 Android 手机,因此导致实际解码播放的帧率远小于视频码流的实际帧率,从而产生卡顿。

解决这个问题的思路主要有如下几个方面:

  • 尽可能选择使用硬解,充分利用 GPU 加速
  • 如果有多种码流,尽可能在低端机上选择非高清码流
  • 增大缓冲区,有助于缓解解码不稳定带来的卡顿

2.3 视频流时间戳问题

这个问题也遇到的比较多,特别是客户自己写的推流 SDK 或者码流经过一些转码处理后,没有处理好音视频时间戳从而产生的问题。播放器一般是严格根据码流中的音视频的时间戳来做音画同步的,因此,如果码流中的音视频时间戳出现错误,肯定会影响到播放画面的渲染时机。

例如,曾经遇到一个流的时间戳信息如下:

时间戳信息.png

可以看到,它的视频时间戳出现了 “回退”,而播放器一般 master 主时钟是单调递增的,当后来的视频帧小于了当前的主时钟,播放器就会做丢帧处理,从而导致播放的视频帧率远低于实际码流中的视频帧率,从而产生卡顿现象。

直播专题问题排查-播放失败(一)
直播专题问题排查-播放卡顿(二)
直播专题问题排查-首开慢(三)
直播专题问题排查-延时高(四)
直播专题问题排查-音画不同步(五)
直播专题问题排查-黑屏、花屏、闪屏(六)
直播专题问题排查-播放杂音、噪音、回声(七)
直播专题问题排查-拖动不准(八)
直播专题问题排查-功耗高(九)
直播专题问题排查-马赛克(十)

相关文章

网友评论

    本文标题:直播专题问题排查-播放卡顿(二)

    本文链接:https://www.haomeiwen.com/subject/vwwizhtx.html