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

Python 2.7 如何使用ONVIF在python中访问IP摄像头以录制视频,python-2.7,ip-camera,onvif,Python 2.7,Ip Camera,Onvif,朋友们,我正在用python2的IP摄像机录制一段视频。 我可以使用“devicemgmt”获得唯一的设备名称,类似于我对“媒体”和“录制”所做的操作。错误如下所示 对于媒体:“警告:suds.umx.typed:属性(视图模式)类型,未找到” 用于录制:“onvif.exceptions.onviferor:未知错误:设备不支持服务:录制” 如果你知道的话,任何人都可以分享这个想法。你可以使用软件motion,进行运动检测和录制视频。它是高度可配置的 我可以和大家分享我的一段代码(pyth

朋友们,我正在用python2的IP摄像机录制一段视频。 我可以使用“devicemgmt”获得唯一的设备名称,类似于我对“媒体”和“录制”所做的操作。错误如下所示


对于媒体:“警告:suds.umx.typed:属性(视图模式)类型,未找到”


用于录制:“onvif.exceptions.onviferor:未知错误:设备不支持服务:录制”


如果你知道的话,任何人都可以分享这个想法。

你可以使用软件
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

在您的情况下,ONVIF只是获取要捕获的视频流的RTSP地址的一种方法。相反,您可以搜索一种捕获RTSP的方法


如果找不到相机的RTSP地址,可以尝试使用ONVIF设备管理器。使用此软件,您将能够检索相机的RTSP地址。下面是一些如何找到RTSP地址的屏幕截图:

谢谢兄弟,但我使用的是onvifThanks兄弟,但我需要一个使用onvif包的python 2代码