1. 前言
很多次遇到了这种问题,在这里做一下总结。
2. 问题总结
第一,是播放端读取缓冲区不够,有时候,高清码流,一帧就好几兆,所以缓冲区要足够长。对于基于FFmpeg的播放器,应该是下面的参数:
av_dict_set(&this->opts, "buffer_size", "8192000", 0);
第二,播放端要不间断读取帧,如果每读取一帧,间歇几毫秒,则有几率出现这种问题,因为在这间歇的几毫秒内,也许就是一个帧的尾包,该帧因为不完整,就会花屏,实测。
很多次遇到了这种问题,在这里做一下总结。
第一,是播放端读取缓冲区不够,有时候,高清码流,一帧就好几兆,所以缓冲区要足够长。对于基于FFmpeg的播放器,应该是下面的参数:
av_dict_set(&this->opts, "buffer_size", "8192000", 0);
第二,播放端要不间断读取帧,如果每读取一帧,间歇几毫秒,则有几率出现这种问题,因为在这间歇的几毫秒内,也许就是一个帧的尾包,该帧因为不完整,就会花屏,实测。