Как получить доступ к IP-камере в Python, используя ONVIF для записи видео - PullRequest
0 голосов
/ 06 марта 2019

Друзья, я пытаюсь записать видео с помощью IP-камеры в python2.Я могу получить только имя устройства, используя «devicemgmt», аналогично, я делаю для «media» и «recording». Ошибка выглядит следующим образом.


для media: «WARNING: suds.umx.набрано: тип атрибута (ViewMode), не найден "


для записи:" onvif.exceptions.ONVIFError: Неизвестная ошибка: устройство не поддерживает службу: запись "

МожетКто-нибудь, пожалуйста, поделитесь идеей, если вы знаете.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

В вашей ситуации ONVIF - это просто способ получить RTSP-адрес видеопотока для захвата.Вместо этого вы можете искать способ захвата RTSP.

Если вы не можете найти RTSP-адрес камеры, вы можете попробовать диспетчер устройств ONVIF.С помощью этого программного обеспечения вы сможете получить RTSP-адрес камеры.Вот несколько скриншотов, как найти адрес RTSP: https://surveilleur.com/2019/02/25/adresse-rtsp-dune-camera-onvif/

0 голосов
/ 06 марта 2019

Вы можете использовать программное обеспечение motion для обнаружения движения и записи видео. Это очень настраиваемый.

Я могу поделиться с вами частью моего кода (python), где я снимал только один кадр с IP-камеры с помощью openCV.

import urllib.request
import cv2
import numpy as np

def CaptureFrontCamera():
    _bytes = bytes()
    stream = urllib.request.urlopen('http://192.168.0.51/video.cgi?resolution=1920x1080')
    while True:
        _bytes += stream.read(1024)
        a = _bytes.find(b'\xff\xd8')
        b = _bytes.find(b'\xff\xd9')
        if a != -1 and b != -1:
            jpg = _bytes[a:b+2]
            _bytes = _bytes[b+2:]
            filename = '/home/pi/capture.jpeg'
            i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
            cv2.imwrite(filename, i)
            return filename
...