You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python的ONVIF库调用Recording功能访问IP摄像头SD卡

问题描述

我想用Python的python-onvif库远程访问IP摄像头的SD卡,目前能正常调用DeviceMgmt功能(通过mycam.devicemgmt),也能先创建PTZ服务(ptz=mycam.create_ptz_service())再用mycam.ptz调用PTZ功能,但搞不懂这两种调用方式的差异。

调用mycam.devicemgmt.GetCapabilities()后发现,PTZ可以直接访问,但Recording在Extension节点下,和DeviceIO等功能并列,现在不知道怎么调用Recording功能,求对应的Python语法。附GetCapabilities返回结构:

{
    'PTZ': {
        'XAddr': 'http://XXX.XXX.XXX.XXX/onvif/PTZ',
        '_value_1': None,
        '_attr_1': None
    },
    'Extension': {
        '_value_1': [
            <Element {http://www.onvif.org/ver10/schema}DeviceIO at 0x2722de89f00>,
            <Element {http://www.onvif.org/ver10/schema}Recording at 0x2722de89ec0>,
            <Element {http://www.onvif.org/ver10/schema}Search at 0x2722de89e40>,
            <Element {http://www.onvif.org/ver10/schema}Replay at 0x2722de89f40>
        ]
}
解答

一、两种调用方式的差异

  • 直接通过mycam.devicemgmt调用:DeviceMgmt是ONVIF的核心基础服务,python-onvif库默认会自动初始化该服务,因此可直接通过实例属性访问其API。
  • 先创建服务再调用(如PTZ):PTZ这类属于扩展服务,库不会默认初始化,必须手动调用create_xxx_service()方法创建对应服务实例,之后才能通过mycam.ptz访问该服务的功能。

二、调用Recording服务的步骤

Recording属于Extension下的扩展服务,需手动初始化服务实例,具体操作如下:

  1. 提取Recording服务的XAddr
    从GetCapabilities返回结果中找到Recording服务的地址:
# 获取设备能力信息
capabilities = mycam.devicemgmt.GetCapabilities()
# 遍历Extension中的服务元素,提取Recording的XAddr
recording_xaddr = None
for service in capabilities.Extension._value_1:
    if service.tag == 'Recording':
        recording_xaddr = service.get('XAddr')
        break
  1. 创建Recording服务实例
    使用专用方法或通用方法初始化服务:
# 方式一:使用专用创建方法
mycam.create_recording_service(address=recording_xaddr)

# 方式二:使用通用创建方法指定服务类型
mycam.create_service('Recording', address=recording_xaddr)
  1. 调用Recording服务API
    创建完成后,即可通过mycam.recording调用相关功能,比如获取录制能力、SD卡录像文件列表:
# 获取录制能力
recording_cap = mycam.recording.GetRecordingCapabilities()

# 获取录像文件记录
recordings = mycam.recording.GetRecordings()

注意:不同摄像头的ONVIF实现可能存在差异,确保mycam实例已完成正确的身份认证,若调用出错,可检查XAddr是否正确,或参考设备的ONVIF文档确认支持的API。

内容的提问来源于stack exchange,提问作者simthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 08:02:48