почему мой cv2.imshow () остается на первом кадре, когда я использовал многопоточность? - PullRequest
1 голос
/ 05 июля 2019

Мне нужно воспроизводить видео файлы, используя cv2 с многопоточностью. Он правильно работает для первого файла, но останавливается на первом кадре второго файла и останавливается там .. Как это исправить?

from threading import Thread
import cv2
files = [ 'video_1','video_2']
def player (video):
    cap = cv2.VideoCapture(video+'.mp4')
    while cap.isOpened() :
        time = cap.get(cv2.CAP_PROP_POS_MSEC)
        fps = cap.get(cv2.CAP_PROP_FPS)
        total_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
        print(time, fps, total_frames)
        ret, frame = cap.read()
        if ret == True:
           cv2.imshow('frame',frame)
           if cv2.waitKey(33) & 0xFF == ord('q'):
               break
        else:
            break

for i in files :
   t1 = Thread (target = player , args = (i,))
   t1.start()
   t1.join()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...