[英]real time video processing using multithreading in Python
我正在使用 Python 中的多線程進行實時視頻處理。 這里的過程是:
線程將這些幀放入優先級隊列 ( input_queue
)。 (我按順序保持幀)
線程開始從隊列中獲取幀並進行處理。
output_queue
進行顯示。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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.