问题:用cv2读取摄像头,帧率取25,不定时出现H.264解码异常,同时图像花屏。
解决方案:用多线程和queue队列,一个线程读取摄像头,另一个线程显示,读取摄像头速度设置更快的时候,比如,每1ms拍一张,而显示和保存还是25fps,此时不再出现花屏和卡帧问题,延时也变短了。。。
更新:花屏似乎跟摄像头读取速度无关,只要读取摄像头的时候设置了timeout(sleep/wait/其他),就可能出现花屏。因此,多线程的意义更多在于将控制timeout的操作从读取操作分离到处理操作的步骤中。
问题:用cv2读取摄像头,帧率取25,不定时出现H.264解码异常,同时图像花屏。
解决方案:用多线程和queue队列,一个线程读取摄像头,另一个线程显示,读取摄像头速度设置更快的时候,比如,每1ms拍一张,而显示和保存还是25fps,此时不再出现花屏和卡帧问题,延时也变短了。。。
更新:花屏似乎跟摄像头读取速度无关,只要读取摄像头的时候设置了timeout(sleep/wait/其他),就可能出现花屏。因此,多线程的意义更多在于将控制timeout的操作从读取操作分离到处理操作的步骤中。