曾经做过一个关于摄像头视频方面的项目.在这个项目中遇到了两个麻烦的问题,特记录下来.
视频的流畅性问题:
首先说下我的结构:
主要分三部分: 上层:ffmpeg解码+UI渲染
中层:循环buffer缓存视频数据(单独的一个线程)
底层:视频数据接收(单独的一个线程)
对于这个流畅性问题,
首先优化了底层的usleep时间,有之前的40x1000 调整到5*1000. 使接收数据尽可能快些(当然这里有对I帧, P,B帧的处理).
然后优化了中间层的线程休眠时间.
调整后的代码如下:
while(1 == pVideo->recviceing) {
if (0 == pVideo->recviceing || NULL == pPopVideoBuf) {
//退出线程