如何使用ONVIF在python中访问IP摄像机以录制视频

时间:2019-03-06 06:51:26

标签: python-2.7 ip-camera onvif

朋友,我正在尝试在python2中使用IP摄像机录制视频。 我只能使用“ devicemgmt”获得设备名称,类似地,我正在为“ media”和“ recording”进行操作。错误是这样的。


对于媒体:“未找到警告:suds.umx.typed:属性(ViewMode)类型”


用于记录:“ onvif.exceptions.ONVIFError:未知错误:设备不支持服务:正在记录”

任何人都可以分享这个想法。

2 个答案:

答案 0 :(得分:0)

您可以使用软件motion进行运动检测和录制视频。它是高度可配置的。

我可以与您共享我的一部分代码(python),在这里我仅使用openCV从IP摄像机捕获一帧。

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

答案 1 :(得分:0)

根据您的情况,ONVIF只是获取要捕获的视频流的RTSP地址的一种方法。相反,您可能会寻找捕获RTSP的方法。

如果找不到摄像机的RTSP地址,则可以尝试使用ONVIF设备管理器。使用此软件,您将能够检索摄像机的RTSP地址。以下是一些有关如何找到RTSP地址的屏幕截图:https://surveilleur.com/2019/02/25/adresse-rtsp-dune-camera-onvif/