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) не работает вообще - отображает окно первого потока без единого кадра и висит. Пожалуйста, подскажите в чем может быть причина? что я упускаю?


Ответы (0 шт):