Imageio无法以正确的帧速率读取网络摄像头

时间:2018-08-16 15:53:40

标签: python-3.x ffmpeg python-imageio

我正在尝试从网络摄像头读取帧并进行实时分析,但是由于我的函数AnalyzeFrame()比帧速率快,因此最终导致同一帧连续1-4次拉出我的数据。这基本上就是我正在运行的。

import imageio

cam = imageio.get_reader('<video0>', fps=30)

while not cam.closed:
    print(AnalyzeFrame(cam.get_next_data()))

一些注意事项:我的网络摄像头应该能够处理30fps,但是我的平均速度为12-14 fps。我已经为每个单独的过程计时,并且帧速率几乎没有规律性。有些帧仅被分析一次,因为它们在缓冲区中的时间约为20毫秒。其他人在100毫秒以上的时间内进行了4次分析。我的代码中是否有引起此帧速率问题的东西?

1 个答案:

答案 0 :(得分:1)

根据我从一些测试中了解到的情况,当您调用get_next_data()时,脚本就是从网络摄像头获取帧的。因此,设置fps没用。

要找出无法达到30 fps的原因,应该找出功能AnalyzeFrame所花费的时间。