直播专题问题排查-首开慢(三)

2020-06-04  本文已影响0人  PlatoJobs

首开慢

1. 首开慢的表现

点击播放后,需要好几秒才能显示播放画面。

2. 常见首开慢问题排查

2.1 点击播放后才从服务器取播放地址

播放视频,第一件事就是要拿到播放地址,大多数直播 App,主播的播放地址是由 App向服务端发 HTTP GET请求才能拿到的,因此,什么时候去 “拿” 这个播放地址,显得至关重要,常见的做法有如下两种:

2.2 DNS 解析慢

不同的播放域名,DNS 解析有快有慢,再加上 DNS 解析服务的缓存策略,在本地没有该域名缓存的情况下,会逐级向更高级的域名服务器查询域名,因此,播放域名解析的耗时,会对首开产生不小的影响。

2.3 播放策略原因

播放首开时间的定义,就是从点击播放到第一帧画面显示出来的耗时,因此,我们需要尽一切可能加快播放进度。

很多侧重点播的播放器,为了减少卡顿,会有一些缓冲策略,当缓冲足够多的数据之后 ,再送入解码播放。

而为了加快首开效果,需要对播放的缓冲策略做一些调整,如果第一帧还没有渲染出来的情况下,不要做任何缓冲,直接送入×××解码播放,这样就可以保证没有任何因为 “主动” 缓冲带来的首开延时。

2.4 播放参数配置

所有基于ffmpeg的播放器,都会遇到 avformat_find_stream_info 这个函数耗时比较久,从而增大了首开时间,该函数主要作用是通过读取一定字节的码流数据,来分析码流的基本信息,如编码信息、时长、码率、帧率等等,它由两个参数来控制其读取的数据量大小和时长,一个是 probesize,一个是analyzeduration减少probesizeanalyzeduration可以有效地减少 avformat_find_stream_info 的函数耗时,从而加快首开,但是需要注意的是,设置地太小可能会导致读取的数据量不足,从而无法解析出码流信息,导致播放失败,或者出现只有音频没有视频,只有视频没有音频的问题。

2.5 服务端线路原因

当播放端的优化做到极限后,剩下的首开快慢的决定性因素就是服务端的线路了,服务端的线路主要有哪些方面会影响首开呢?

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

上一篇 下一篇

猜你喜欢

热点阅读