Python ONVIF CreateOSD()返回';配置令牌不存在'; 从onvif导入ONVIFCamera 摄像头=开启VIFCAMERA(,,调整时间=真) camera.create_media_service() osd=camera.media.create_类型('CreateOSD') osd.osd={ “令牌”:“令牌0”, “位置”:{ 'Type':'UpperLeft', }, “文本字符串”:{ “纯文本”:“测试”, “类型”:“普通”, }, “类型”:“文本”, “VideoSourceConfigurationToken”:“token1”, } 响应=camera.media.CreateOSD(osd) 打印(答复)

Python ONVIF CreateOSD()返回';配置令牌不存在'; 从onvif导入ONVIFCamera 摄像头=开启VIFCAMERA(,,调整时间=真) camera.create_media_service() osd=camera.media.create_类型('CreateOSD') osd.osd={ “令牌”:“令牌0”, “位置”:{ 'Type':'UpperLeft', }, “文本字符串”:{ “纯文本”:“测试”, “类型”:“普通”, }, “类型”:“文本”, “VideoSourceConfigurationToken”:“token1”, } 响应=camera.media.CreateOSD(osd) 打印(答复),python,onvif,zeep,Python,Onvif,Zeep,这是我的全部密码 当我调用GetServiceCapabilities()时,OSD返回True,因此我认为我的相机确实支持OSD 如何修复此错误?通过添加VideoSourceConfigurationToken解决了此问题 最终代码: from onvif import ONVIFCamera camera = ONVIFCamera(<host>, <port>, <user>, <passwd>, adjust_time=True) ca

这是我的全部密码

当我调用GetServiceCapabilities()时,OSD返回True,因此我认为我的相机确实支持OSD


如何修复此错误?

通过添加
VideoSourceConfigurationToken
解决了此问题

最终代码:

from onvif import ONVIFCamera

camera = ONVIFCamera(<host>, <port>, <user>, <passwd>, adjust_time=True)
camera.create_media_service()
osd = camera.media.create_type('CreateOSD')
osd.OSD = {
    'token': 'token0',

    'Position': {
        'Type': 'UpperLeft',
    },
    'TextString': {
        'PlainText': 'TEST',
        'Type': 'Plain',
    },
    'Type': 'Text',
    'VideoSourceConfigurationToken': 'token1',
}
response = camera.media.CreateOSD(osd)
print(response)
从onvif导入ONVIFCamera
摄像头=开启VIFCAMERA(,,调整时间=真)
camera.create_media_service()
profiles=camera.media.GetProfiles()
osd=camera.media.create_类型('CreateOSD')
osd.osd={
“令牌”:“令牌0”,
“位置”:{
'Type':'UpperLeft',
},
“文本字符串”:{
“纯文本”:“测试”,
“类型”:“普通”,
},
“类型”:“文本”,
“VideoSourceConfigurationToken”:配置文件[0]。VideoSourceConfiguration.token,
}
响应=camera.media.CreateOSD(osd)
打印(答复)
from onvif import ONVIFCamera

camera = ONVIFCamera(<host>, <port>, <user>, <passwd>, adjust_time=True)

camera.create_media_service()

profiles = camera.media.GetProfiles()

osd = camera.media.create_type('CreateOSD')
osd.OSD = {
    'token': 'token0',

    'Position': {
        'Type': 'UpperLeft',
    },
    'TextString': {
        'PlainText': 'TEST',
        'Type': 'Plain',
    },
    'Type': 'Text',
    'VideoSourceConfigurationToken': profiles[0].VideoSourceConfiguration.token,
}
response = camera.media.CreateOSD(osd)
print(response)