V4L2 в библиотеке opencv на python

Начал писать код для работы с библиотекой opencv в python, но столкнулся с такой проблемой, что при использовании v4l2, ловлю ошибку: cv2.error: OpenCV(4.6.0) /io/opencv/modules/highgui/src/window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

Вот сам код:

print(cv2.__version__)

width=800
height=600
flip=2


# camSet=cv2.VideoCapture('/dev/video0')
cam = "v4l2src device=/dev/video0 ! video/x-raw, width=1280, height=720, framerate=30/1 ! videoconvert ! appsink"
camSet=cv2.VideoCapture(cam)
while True:
    _, frame = camSet.read()
    cv2.imshow('myCam', frame)
    cv2.moveWindow('myCam', 0, 0)
    if cv2.waitKey(1)==ord('q'):
        break
camSet.release()
cv2.destroyAllWindows()```

(Если использовать закоменченную часть, то все норм и камера выводится)

Я читал про v4l2, но так и не до конца понял про совместимость камер
(Я пока использую вэбку с ноутбука)

Вероятнее всего я дурачок, что так делаю, поэтому было бы неплохо если кто-то объяснил что не так

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

Автор решения: Maxim Dupak

в качестве второй константы нужно установить cv2.CAP_V4L2. Т.к. пытаетесь использовать pipline через v4l2src. Типа такого camSet=cv2.VideoCapture(cam, cv2.CAP_V4L2)

→ Ссылка