物联网智能视频服务(消费版) 观看直播或者回放时画面卡顿或者花屏

这篇分析直播卡顿、不流畅或花屏的原因,提供排查方法:先保存本地流用第三方播放器验证,若仍卡顿则检查设备端丢帧,否则排查网络带宽或时序问题,并给出码率自适应、检查丢帧逻辑等解决措施。 原因分析:通过本地保存流定位卡顿源头,区分设备端丢帧或网络带宽问题。 解决方法:设备端丢帧需检查代码逻辑,网络问题需做码率自适应。

相关产品
物联网智能视频服务(消费版) 产品页,含版本规格、价格与购买入口。

一、详细描述

在小程序或者 App 端,观看设备的直播时,画面卡顿、不流畅或花屏。

二、原因分析

卡顿的原因有很多种,需要逐一排除, 其排查方法如下:

·将 App 或小程序端收到的音视频流保存在本地,格式一般为 flv;使用第三方播放器(推荐 PotPlayer 或者 VLC)观看本地保存的音视频数据,如果仍然出现卡顿,则是从原因1开始分析,否则从原因2开始。

·原因1:这种卡顿一般是因为视频数据有缺失,从本地保存的音视频流中提取出H264/H265裸数据(推荐使用 ffmpeg), 使用 elecard 分析 H264/H265 裸数据, 找到卡顿的时间点, 确认是否有丢帧(可根据 silce header 中的 frame_num 值判断), 一般都是有丢帧的, 丢帧一般都是在设备端引起的。 在设备端查找该时间点发生的音视频数据, 调用iv_avt_send_stream时是否有错误, 或者编码器生成的数据是否有丢帧(可将编码器的 GOP 实时值打印出来判断)。

·原因2:这种卡顿一般是网络带宽低于数据码率或者时序有问题引起的, 先判断卡顿点设备端是否有水位报警, 然后使用 flv 分析工具分析数据的时序是否有问题, 如果时序没有问题则需要在设备端做码率控制。

三、解决方法

·如果是设备端带宽原因引起的卡顿,需要做码率自适应。

·如果是设备端丢帧导致的,则需要用户检查代码中的丢帧逻辑是否有问题。

·如果是读取编码器数据有问题,则需要用户检查业务逻辑中 CPU 是否占用太高或者取数据线程优先级太低。

赞 (0)
上一篇 4天前
下一篇 4天前