Я работаю над обработкой видео в реальном времени с использованием многопоточности в Python.Вот процессы:
- Я открываю веб-камеру и фиксирую кадры.
- Я создаю 10 потоков для обработки видео (обнаружения).
Потокипоместите эти кадры в приоритетную очередь (input_queue
).(Я храню кадры в последовательном порядке)
Потоки начинают брать кадры из очереди и обрабатывают.
- Потоки помещают кадры в
output_queue
для показа. - И, наконец, один метод читает кадры из
output_queue
и показывает.Здесь вывод должен отображаться мгновенно как обработанное видео при захвате изображений с камеры.(может быть пять секунд позади.)
На самом деле я делаю эти процессы.Но я запускаю свой проект, 10 потоков очень быстро обрабатывают кадры из очереди, и мое выходное видео закрывается через 5 секунд.Из-за output_queue
пусто.
Я пытаюсь поставить time.sleep()
перед обработкой или перед чтением кадров, или если очередь пуста, но в это время выходное видео начинается очень поздно и снова закрывается или видео многократно открывается и закрывается.
Как мне поступить?Спасибо за вашу помощь.