直播的时候,有时会出现视频卡顿的现象,一般帧率低于10帧/秒,
就会明显感觉到卡顿,都有哪些因素可能造成卡顿呢?
下面我进行了汇总梳理:
其中最常见的是: 流本身和网络的问题导致的。
某次卡顿问题的分析和解决
从流媒体服务器获取的rtmp
流,用Adobe Flash Player
播放,存在频繁缓冲,即流畅一下,然后缓冲一下,类似一卡一卡的现象,如下:
首先,怀疑是流本身的音视频不同步导致的。
用流分析工具进行分析,结果如下:
分析视音频同步情况
跑了一段时间,发现视音频同步一直非常良好。
说明: 1. 数据一直在正常发送 不存在网络问题。 2. 视频音频的同步效果良好。
用vlc播放时,发现视频流畅,但是音频一卡一卡的,查看统计信息:
统计信息
发现音频数据没有进行正常解码。
这时候就怀疑音频的参数没有正常获取,分析后发现果然是。
音频的采样率是
16000
,但是从源获取参数的时候没有正常获取到采样率,设置的默认的采样率32000
。也就是说rtmp流实际的音频流数据是
16k
的,但是rtmp
流刚开始提供的音频参数(AAC Sequence header
)中包含的采样率是32k
,参数不正确,导致解码时出现问题,继而导致出现一卡一卡的现象。
网友评论
https://github.com/ZhaoliangGuo/StreamingMediaToolKit