使用python-onvif-zeep禁用IP PTZ摄像机自动对焦

时间:2019-07-23 05:02:15

标签: python ip-camera python-onvif

我的PTZ摄像机会自动对焦并调整平移-倾斜-缩放和摄像机中某些物体上的图像。 我想禁用这些功能。

我正在使用python-onvif-zeep库https://github.com/FalkTannhaeuser/python-onvif-zeep.git

onvif的操作指南在这里 https://www.onvif.org/onvif/ver20/util/operationIndex.html

我要发送的特定功能是SetImagingSettings https://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl#op.SetImagingSettings

我尝试如下创建请求

request = controller.imaging.create_type('SetImagingSettings')
video_sources = controller.media.GetVideoSources() # get video source to fetch token

request.VideoSourceToken = video_sources[0].token
request.ImagingSettings = {
    'Brightness': 200,
    'Focus': {
        'AutoFocusMode': 'MANUAL'
    }
}

controller.imaging.SetImagingSettings(request)

没有“焦点”部分,代码可以很好地更新“亮度”值。

我的期望:成像设置得到更新,从而禁用了自动对焦。

但是我收到一个普遍错误,提示“ zeep.exceptions.Fault:请求的设置不正确” 谢谢大家!

1 个答案:

答案 0 :(得分:0)

尝试

  1. 获取图像设置
  2. 获取对SetImageSetting的请求:
  3. 设置为对SetImageSetting:ImagingSettings的触发步骤的响应
  4. 设置VideoTokenProfile
  5. 发送请求
import re

data = '''\
/youtube.com/videos/cats
/google.com/images/dogs
'''
pattern = re.compile(r'^(/[^/]+/).+?$', re.MULTILINE)

print(pattern.sub(r'\1', data))