主要有设备、视频流、网络这三个方面的原因。高清视频会给硬件带来解码压力,同时如果PC端Flash Player或移动端播放软件版本过低时,可能也都会造成解码问题导致播放卡顿。解决方法有以下几点:升级硬件、软件设备,提高兼容性和容错率;使用硬编硬解方案,充分利用GPU 加速;降低视频码率,选择流畅或者标清画质进行视频播放;增大播放器缓冲区,缓解因网络或解码不稳定引起的卡顿。
音视频时间戳不同步会影响画面渲染,导致画面解析是出现问题,造成一卡一卡的现象出现。解决方法:对推流器的源码进行研究,把读取到的每一针音频、视频的时间戳进行查阅、分析,然后通过程序干涉推流器或者流媒体服务器,矫正逻辑值,从而使音画同步。
视频流的编码方式与传输服务器有不兼容。解决方法有:设置合理的码率,帧率,分辨率,关键帧间隔,音视频编码格式等参数;尽量遵循标准的视频编码方案,流媒体传输协议,对视频流进行采集,编码,解码,播放等操作。
网络存在问题可以使用 speedtest 进行测速,判断终端的网络速度;用户 ping 播放域名,查看解析到的服务器节点,判断自身IP 到服务器之间是否有延迟过大或者丢包的情况出现。