Python. Простейший код работает в windows и не работает в линукс (ubuntu 20)
простейший код:
import cv2
from threading import Thread
def show1(path):
cap = cv2.VideoCapture(path)
cv2.namedWindow('video1', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video1', 640, 480)
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow("video1", frame)
cv2.waitKey(40)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
return None
def show2(path):
cap = cv2.VideoCapture(path)
cv2.namedWindow('video2', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video2', 640, 480)
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow("video2", frame)
cv2.waitKey(40)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
return None
if __name__ == '__main__':
thread_s1 = Thread(target=show1, args=(path1,))
thread_s2 = Thread(target=show2, args=(path2,))
thread_s1.start()
thread_s2.start()
thread_s1.join()
thread_s2.join()
под windows без проблем открывает два окна в двух потоках и отображает два разных видео - все как задумано, под линуксом (ubuntu 20) не работает вообще - отображает окно первого потока без единого кадра и висит. Пожалуйста, подскажите в чем может быть причина? что я упускаю?