推流卡顿问题在成品直播源码很常见,造成卡顿的原因主要有设备、视频流、网络三方面,那么相应的,平台也需要从这三面入手来做优化,不过真正想要提供好的直播画面,并不只包括这三方面,还有我们常见的断线重连、码率自适应、退后台保持推流等方法可用,具体的我们来看一下。
一、断线重连
直播从推流端,到服务端,再到播放端,成品直播源码的各节点一般都会有音视频流数据的缓冲。在推流端发生断流,在各级缓冲没有消耗完音视频数据之前,如果能恢复数据生产,还是有希望避免播放端出现断播或卡顿。
断线重连实现起来较简单,只需要注意两个方面:
1、完善推流会话各层的错误回调,及时感知到推流中断
2、和服务端协商好推流连接的实效期,保证重连后用户还能回到原来的直播间内
二、后台保持推流
后台运行功能其实不是什么新鲜功能,现在的成品直播源码都支持用户在保持直播间里的情况下进行其他操作仍然能后台播放甚至小窗播放的能力,但对主播来说这个功能很重要。移动端设备直播下,主播收到电话、短信等信息时,会不会影响到正常直播,接通电话后敏感信息是否会泄露等。
1、退后台如果继续采集音频可能涉及到隐私问题。对于这个问题,可以退后台停止采集,但是保持推静音音频数据。
2、退后台无法继续采集视频,这时候如果不推视频数据,那么可能会引起 CDN 和播放器的不兼容的问题,可以适当降低成品直播源码的帧率来降低推流的码率。
三、码率自适应
如果成品直播源码的推流端遇到网络差的情况,已经不支持平台以原本视频清晰度继续发送时,就要采用码率自适应来适配网络了。
推流端的码率自适应主要是通过计算单位时间内编码码率与发送码率来判断网络的实时情况,然后可以根据多次判定的结果进行码率调整。如果成品直播源码网络较差,优先降低帧率,同时调整实时码率匹配此时的帧率,这样可以保证清晰度不变。当帧率降低到最小容忍值后,网络依然较差,则可以继续降码率。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
领取专属 10元无门槛券
私享最新 技术干货