所谓的拉流秒开意思,就是当我们在播放器点击播放到看到画面出来这个延时时长,最近有很多客户在对接云直播的时候咨询了如何优化秒开,今天把问题原因和优化方案总结一下,希望对大家后面的接入有一定帮助。
在了解问题前言,首先要了解下整个拉流的过程是经过哪些步骤,这些步骤都会对我们首开有一定影响。也看下哪些是尽量可以避免优化的地方。
通常情况下在APP端去请求拉流的时候,会先向服务端请求获取对应房间的拉流地址,而这个请求的时机很重要,需要在请求刷新房间列表的时候,就把每个房间对应的拉流地址获取到,然后进入房间后直接用获取到的拉流地址开始播放。如果要等到进入房间后在去请求获取拉流地址并播放的话,就会有一个请求过程。这样就增加了一个首开的时间。
播放拉流的时候会有一个DNS域名解析的过程,具体解析规则是,先在本地解析,如果本地没有该域名缓存的情况下,会逐级向更高级的域名服务器查询域名解析,因此域名解析过程的耗时对直播拉流的秒开也会有一点点的影响,如果业务对秒开的要求特别高的话,建议可以通过配置IP地址的方式进行拉流,这样可以节省DNS解析的时间,或者可以提前做DNS的预热。
服务端有哪些因素影响影响了秒开:
原因1:服务端节点
所谓拉流的过程就是向附近的云端节点去拉取对应数据流,如果你离附近节点比较近,那么这个数据传输也就会快一点。另外服务器的响应处理能力也会有一定的影响。腾讯云部署了国内有1100多个CDN节点;海外200多个 CDN 的加速节点。
原因2: 冷热流
当在就近节点拉流时,如果这个节点为首次请求,就不会有缓存GOP,这个节点需要去上级源点拉流,就会增加一个首开的延时,可以通过CND域名预热来处理,通过将业务内容发布到离用户最近的边缘节点,使用户能够就近获取所需内容,提高用户访问的响应速度和成功率。解决因地域分布、带宽、服务器能力等因素影响,而导致的访问延迟高、用户体验较差等问题。
首先先了解下播放器具体是怎么工作的:
需要尽一切可能加快播放打开速度,首先要知道播放器都有一个设置缓存策略,这个策略主要是为了减少卡顿,就是当你拉流端的网络有波动的情况下可以通过播放器缓存来减少卡顿率,抵抗网络抖动,抵抗解码抖动,避免被动丢帧导致的花屏。
为了加快首开效果,需要对播放的缓冲策略做一些调整,如果第一帧还没有渲染出来的情况下,不要做任何缓冲,直接送入解码器解码播放,需要在你的播放器底层设置一下缓存时间,但是最好还是根据你播放端网络情况来设定了,如果网速比较快的话可以把缓存稍微设置的低一点,来降低首开带来的延时。
综合来说,在直播搭建中要实现直播秒开,还是要考虑很多方面,按照以上的总结,根据你的需求去做到最好的优化,从而达到我们想要的效果。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。