gpt4 book ai didi

python - 在Python中使用多线程进行实时视频处理

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:35 24 4
gpt4 key购买 nike

我正在使用 Python 中的多线程进行实时视频处理。流程如下:

  1. 我打开网络摄像头并捕获帧。
  2. 我创建了 10 个线程用于视频处理(检测)。
  3. 线程将这些帧放入优先级队列 (input_queue)。 (我按顺序保留帧)

  4. 线程开始从队列中获取帧并进行处理。

  5. 线程将帧放入 output_queue 中进行显示。
  6. 最后一种方法从 output_queue 读取帧并显示。这里,当从相机捕获图像时,输出需要立即显示为处理后的视频。 (可能落后五秒。)

实际上这些过程都是我做的。但我运行我的项目,10 个线程非常快速地处理队列中的帧,并且我的输出视频在 5 秒后关闭。因为 output_queue 是空的。

我尝试在处理之前或读取帧之前放置time.sleep(),或者如果队列为空,但此时输出视频开始很晚并再次关闭,或者视频重复打开和关闭。

我该怎么办?感谢您的帮助。

最佳答案

当队列为空时,Queue.get() 方法会引发 Queue.Empty 异常。您可能需要捕获并处理它,或者阻止它被引发。

try:
image = output_queue.get()
# display image
except Queue.Empty:
pass

为了防止这种情况发生:

if not output_queue.empty():
image = output_queue.get()
# display image

关于python - 在Python中使用多线程进行实时视频处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53945501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com