Поток RTSP не работает на python, но работает на VL C. Почему? - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь запустить потоковую передачу своей PTZ-камеры, используя python 3 и openCV. URL, который я использую в коде, работает с потоком VL C, но не с кодом.

import cv2
import numpy as np

cap = cv2.VideoCapture(src="rtsp://USER:PASS@XX.XXX.XXX.XXX:XXX/Streaming/Channels/101/")
FRAME_WIDTH = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
FRAME_HIGTH = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print('Frame Size: ', FRAME_WIDTH, 'x', FRAME_HIGTH)

if cap.isOpened():
    ret, frame = cap.read()
else:
    ret = False

while ret:
    ret, frame = cap.read()
    cv2.imshow('Camera', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Когда я его запускаю, я получаю следующую ошибку:

Traceback (most recent call last):   File "C:/Users/.../CameraTest/TEST.py", line 4, in <module>
    cap = cv2.VideoCapture(src="rtsp://.../Streaming/Channels/101/") TypeError: Required argument 'index' (pos 1) not found

это и камера HIKVISON PTZ. Могу ли я получить какие-либо советы о том, как заставить ее в потоковом режиме.

TNX заранее.

1 Ответ

2 голосов
/ 02 апреля 2020

одно небольшое изменение, удалите src = из метода cv2.VideoCapture (). Это должно выглядеть,

cap = cv2.VideoCapture("rtsp://USER:PASS@XX.XXX.XXX.XXX:XXX/Streaming/Channels/101/")
...