场景
观看视频直播时画面出现卡顿现象。
排查
此问题涉及的原因较多,请参考以下各环节的问题可能性,并根据现场实际情况进行处理:
- 推流端
- 上行带宽不足或网络抖动,导致的数据发送速率下降,无法达到流畅播放的帧率要求。
解决方案:建议您使用网速测试工具Speedtest测试您当前网络的上行带宽情况。
- 码率、帧率或编码档位设置的过高,但硬件条件存在限制,导致编码速度变慢,无法达到流畅播放的帧率要求。
解决方案:请尝试降低码率、帧率或编码档位的设置,检查卡顿现象是否有好转。如果发生好转,您可以考虑升级推流端的硬件配置。
- 推流过程中会有一定的CPU损耗,硬件配置较差的低端手机,在推流过程中若整体CPU 使用率超过80%以上,画面会出现不同程度的卡顿,花屏等现象,会影响到视频的采集,同时也会影响到用户端的观看。
- 视频采集参数的设置过低。
解决方案:人眼识别为流畅的视频需要FPS每秒15帧以上。如果FPS低于10帧,画面就会出现较明显的卡顿。如无特殊情况,尽量将视频帧率设置在每秒15帧之上。
虽然视频的帧率越高画面流畅感越强,但是帧率超过每秒30帧后,人眼就无法识别出画面的效果,帧率增加也会增加视频传输的带宽成本,建议您合理设置视频的参数。
- 上行带宽不足或网络抖动,导致的数据发送速率下降,无法达到流畅播放的帧率要求。
- 服务端
为了保证视频的秒开以及降低视频的卡顿,服务端默认会缓存4秒左右的数据,根据GOP大小不同会有波动,您可以通过设置该缓存时间来减少卡顿。
您可以尝试将协议的延时设置为高,然后保存配置。具体操作请参见延迟配置。
- 实际延时与延时设置、推流的关键帧间隔(GOP)两个因素相关。例如RTMP延时配置为中档,关键帧间隔(GOP)大小为2s,则实际延时为2s~6s。
- 设置高延时会导致直播端和播放端的不同步,请根据业务需求选择合适的延时程度。
- 播放端
大部分播放器都有接收缓存的,缓存收满后,才进行解码显示,这部分接收缓存的大小也会影响播放的卡顿情况;您可以通过调整接收缓存的大小,减少卡顿影响。
- 网络带宽
大多数画面出现卡顿的现象均来自网络因素,以下列出几条常见因素。
- 网络带宽大小:确认网络运营商提供给您的带宽大小,是否足够本次直播传输。
- 下行带宽占用:检查是否有下载数据占用网络带宽。
- 系统资源占用:检查后台是否运行了大量的程序,请您合理的删除和停止正在运行的程序,空出资源。