直播播放时出现卡顿
问题描述
直播推流成功后,在播放端播放直播视频时出现卡顿现象。直播的整个主流程涉及推流端、播放端和直播源站(CDN),因此每个阶段都可能会有因素导致视频播放卡顿,如图1所示。建议您参照如下方法初步排查直播视频卡顿的原因。
检查推流端
- 设备配置
推流过程中会占用一定比例的CPU,硬件配置较差的低端设备,在推流过程中若整体CPU使用率超过80%以上,画面会出现不同程度的卡顿,花屏等现象,会影响到视频的采集,导致片源质量下降影响用户端的观看。您可以通过更换设备配置、系统版本等较高的设备,以保障推流端设备的稳定性尽量避免可能导致卡顿的因素产生。
- 推流开发工具配置
由于编码端设置的码率、帧率以及编码档位过高,且受硬件条件限制,会导致编码速度变慢,无法达到流畅播放的帧率要求。因此对于推流设备的使用,iOS版的移动端建议您使用硬编码,因为iOS系统和硬件设备统一性高,而且省电。而Android版的移动端因为机型复杂,CPU类型众多,支持程度不一,推荐4.3及以上版本使用硬编码。
- 视频采集参数配置
一般情况下,为保障视频的流畅度帧率会设置在每秒15帧以上,如果帧率低于每秒10帧,画面就会出现较明显的卡顿,如无特殊情况,尽量将视频帧率设置在每秒15-30帧之间。帧率超过每秒30帧后,人眼就无法识别出画面的效果,且帧率增加后视频传输的带宽成本也会上升,建议您合理设置视频的采集参数。
- 网络带宽大小
使用在线带宽测试检查推流端的上行网络带宽情况 ,一般建议上行带宽最好稳定在10M以上。
- 系统资源占用
检查播放端
- 大部分播放器都有接收缓存的,缓存收满后,才进行解码显示,这部分接收缓存的大小也会影响播放的卡顿情况,建议通过调整接收缓存的大小,减少卡顿影响。
- 如果播放设备使用的是硬编码,在网络环境较差的情况下,为减少卡顿影响,可以实时改变硬编码率,即降低码率,进行丢帧处理,在丢帧的同时也可降低音频的码率。
- 使用在线带宽测试检查播放端下行网络带宽情况,若播放端的带宽不够或发生抖动,会导致播放画面出现卡顿。同时,检查是否有下载数据占用网络带宽,建议在同一网络环境下,不要有大量的带宽占用行为出现,比如下载等。
- 若您使用第三方工具OBS推流,请您参照以下步骤设置参数。
- 选择“输出 > 高级”。
- 将“关键帧间隔(秒,0=自动)”设置为“2”。
图2 OBS推流延时设置
检查直播源站或直播CDN
若推流端和播放端的排查结果均正常,请检查源站和加速区域的设置是否正确,详情请参考如何选择直播源站和加速区域?。
若检查结果均正常,请提交工单联系技术客服排查直播源站或直播CDN是否存在问题。
提交工单时,需附上如下信息:
- 问题发生时间。
- 故障现象,并提供访问异常或慢的URL地址、直播推流或拉流地址。
- 故障节点信息,并提供Ping域名的返回结果图。
- 用户出口IP和出口DNS,示例如:http://dns-detect-portal.n.cdnhwc5.cn/?domain=xx.xx.xx。并提供相应的访问截图。