Проблема с открытием видеопотока в Python с помощью PTZ-камеры Axis 212 и openCV - PullRequest
4 голосов
/ 11 марта 2020

Я уже некоторое время пытаюсь подключить свою PTZ IP-камеру Axis 212 к окну Python с помощью пакета openCV, но пока не получилось. В большинстве примеров, которые я нашел к этому моменту, используется следующий код, в частности функция .VideoCapture с URL-адресом камеры, чтобы вызвать ее в python и затем отобразить ее.

import cv2

# cap = cv2.VideoCapture('rtsp://169.254.218.43/view/viewer_index.shtml?id=17')
# cap = cv2.VideoCapture('http://username_password@169.254.218.43/axis-media/media.amp')
# cap = cv2.VideoCapture("rtsp://root:root@192.168.200.232/0")
# cap = cv2.VideoCapture("http://192.168.200.232/1")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232:1/video")
# cap = cv2.VideoCapture("http://192.168.200.232:1/mjpeg")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232/axis-media/media.amp?camera=1")
# cap = cv2.VideoCapture.read(192.168.200.232)
# cap = cv2.VideoCapture(1)
# cap = cv2.VideoCapture("http://root:root@192.168.200.232/axis-cgi")
# cap = cv2.VideoCapture("http://%IP%/axis-cgi/mjpg/video.cgi?camera=%C%")
# cap = cv2.VideoCapture("axrtpu://%IP%/axis-media/media.amp?resolution=4CIF&fps=15&videocodec=jpeg")
# cap = cv2.VideoCapture(" rtsp://%IP%/axis-media/media.amp?resolution=4CIF&fps=15&videocodec=h264")
# cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture("http://192.168.200.232:8080")

while(True):
    print(cap.grab())
    ret, frame = cap.read()
    cv2.imshow('frame',frame)

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

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

Python сообщение об ошибке для потока openCV / IP-камеры

Python error message for openCV/IP camera stream

Traceback (последний вызов был последним): файл "C: / ABWorkingFiles / Kairos / 2020_Mar1 / AxisCamera.py", строка 25, в файле cv2.imshow ('frame', frame) cv2.error:

OpenCV (4.2.0) C: \ projects \ opencv-python \ opencv \ modules \ highgui \ src \ window. cpp: 376: ошибка: (-215: утверждение не выполнено) size.width> 0 && size.height > 0 в функции 'cv :: imshow' [tcp @ 00bd9dc0] Соединение с tcp: //192.168.200.232: 8080 не удалось: произошла ошибка -138

Ошибка возникает в строке с. imshow (); точки останова показывают, что эта переменная равна нулю, что заставляет меня думать, что строка кода .VideoCapture не обращается к потоку видеоданных и выводит его в python для отображения.

Я попытался использовать rtsp вместо http , я попытался использовать установленные имя пользователя и пароль на устройстве, я также попытался позвонить в / video и / mjpeg, и до сих пор я не смог подключить видеопоток к python. Он будет запускаться в окне браузера при вводе URL-адреса, и я даже смог сделать одно неподвижное изображение с другим образцом кода, поэтому он работает правильно, но видео по-прежнему отсутствует.

Любая помощь это будет с благодарностью, я очень новичок в openCV, и я чувствую, что я могу упустить что-то простое в моем синтаксисе все. Я чувствовал, что довольно точно определил c с моей проблемой, но если мне нужно быть более конкретным c, просто дайте мне знать.

Спасибо!

...