朋友,我正在尝试在python2中使用IP摄像机录制视频。 我只能使用“ devicemgmt”获得设备名称,类似地,我正在为“ media”和“ recording”进行操作。错误是这样的。
对于媒体:“未找到警告:suds.umx.typed:属性(ViewMode)类型”
用于记录:“ onvif.exceptions.ONVIFError:未知错误:设备不支持服务:正在记录”
任何人都可以分享这个想法。
答案 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/