LiveNVR中使用Onvif协议控制预置位

2023-05-16

LiveNVR支持预置位控制,包括转到指定预置位,设置指定预置位,删除指定预置位

预置位在安防领域有较为普遍的应用,可以进行很多既定位置的跳转,很方便

之前我们说过如何用Onvif协议进行设备的发现,探测,以及云台控制等,今天我们来说一下如何使用Onvif进行预置位的操作

流程

获取设备能力Capabilities

获取设备的能力,并且可以获取到Media和PTZ的URI,使用这两个URL可以进行流和预置位操作,这里如果PTZ URI获取不到意味着这个设备无法支持预置位控制

_tds__GetCapabilities* capabilities = soap_new__tds__GetCapabilities(proxyDevice, -1);
tt__CapabilityCategory* category = new tt__CapabilityCategory;
capabilities->Category = category;
*(capabilities->Category) = tt__CapabilityCategory__All;
_tds__GetCapabilitiesResponse* response = soap_new__tds__GetCapabilitiesResponse(proxyDevice, -1);
if (SOAP_OK == proxyDevice->GetCapabilities(capabilities, response))
{
    if (response->Capabilities)
    {
        //Media URI: response->Capabilities->Media->XAddr;
        //PTZ URI: response->Capabilities->PTZ->XAddr;
    }
}

获取Media Profile

_trt__GetProfiles* getProfiles = soap_new__trt__GetProfiles(proxyMedia, -1);
_trt__GetProfilesResponse* response = soap_new__trt__GetProfilesResponse(proxyMedia, -1);
if (SOAP_OK == proxyMedia->GetProfiles(getProfiles, response))
{
    int size = response->__sizeProfiles;
    for (int i = 0; i < size; ++i)
    {
        if (response->Profiles[i])
        {
            //Media Profile Token: response->Profiles[i]->token;
            //一般设备包含多个Profile Token,包含主码流、子码流、第三码流
        }
    }
}

预置位控制

bool result = false;

   PTZBindingProxy* ptzProxy = new PTZBindingProxy;
   ptzProxy->soap_endpoint = ptzUrl.c_str();

   if (!security(ptzProxy, username, password))
   {
       delete ptzProxy;
       return result;
   }

   char presetToken[8];
   itoa(index, presetToken, 10);

   if (command == PRESET_GOTO)
   {
       _tptz__GotoPreset* preset = soap_new__tptz__GotoPreset(ptzProxy, -1);
       _tptz__GotoPresetResponse* response = soap_new__tptz__GotoPresetResponse(ptzProxy, -1);
       preset->ProfileToken = const_cast<char*>(profile.c_str());
       preset->PresetToken = presetToken;

       if (SOAP_OK == ptzProxy->GotoPreset(preset, response))
           result = true;

       if (response)
           soap_delete__tptz__GotoPresetResponse(ptzProxy, response);

       if (preset)
           soap_delete__tptz__GotoPreset(ptzProxy, preset);
   }
   else if (command == PRESET_SET)
   {
       _tptz__SetPreset* preset = soap_new__tptz__SetPreset(ptzProxy, -1);
       _tptz__SetPresetResponse* response = soap_new__tptz__SetPresetResponse(ptzProxy, -1);
       preset->ProfileToken = const_cast<char*>(profile.c_str());
       preset->PresetToken = presetToken;

       if (SOAP_OK == ptzProxy->SetPreset(preset, response))
           result = true;

       if (response)
           soap_delete__tptz__SetPresetResponse(ptzProxy, response);

       if (preset)
           soap_delete__tptz__SetPreset(ptzProxy, preset);
   }
   else if (command == PRESET_REMOVE)
   {
       _tptz__RemovePreset* preset = soap_new__tptz__RemovePreset(ptzProxy, -1);
       _tptz__RemovePresetResponse* response = soap_new__tptz__RemovePresetResponse(ptzProxy, -1);
       preset->ProfileToken = const_cast<char*>(profile.c_str());
       preset->PresetToken = presetToken;

       if (SOAP_OK == ptzProxy->RemovePreset(preset, response))
           result = true;

       if (response)
           soap_delete__tptz__RemovePresetResponse(ptzProxy, response);

       if (preset)
           soap_delete__tptz__RemovePreset(ptzProxy, preset);
   }

   delete ptzProxy;

   return result;

关于LiveNVR

LiveNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到LiveNVR,LiveNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且LiveNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LiveNVR中使用Onvif协议控制预置位 的相关文章

  • 安全产品,如何从idea到可落地实现

    安全产品 xff0c 如何从idea到可落地实现 前言Step1 xff1a 用一句话描述产品要解决的问题 xff08 What xff09 Step2 xff1a 给出用户故事 xff08 Why xff09 Step3 xff1a 分析
  • LDAP认证

    注 xff1a 本文由网络公开资料整理而来 xff0c 如有错误 xff0c 欢迎指正 LDAP xff08 Lightweight Directory Access Protocol xff09 是目录服务 xff08 DAP xff09
  • 计算机博弈大赛参赛程序算法总结

    背景 前两年的全国计算机博弈大赛的爱恩斯坦棋棋种赛我都有参加 14年采用的是极大极小算法 xff0c 那个时候还不太懂搜索算法的优化 xff0c 所以算法就是最原始的极大极小搜索 xff0c 没有做任何剪枝 15年我在上一年的算法基础上加入
  • 常见硬件通信协议总结

    xff08 正好手上的nodemcu支持UART SPI I2C协议 xff0c 所以这篇文章干脆就用nodemcu来分析协议了 xff09 UART 用逻辑分析仪捕捉nodemcu init lua给上位机发送 A xff1a span
  • 我们都被监控了?揭秘全球电信网络7号信令(SS7)漏洞

    From xff1a https www ithome com html it 278270 htm 最近 xff0c 一篇报道 黑客可以通过电话号码监控你的一举一动 xff0c 里面描述因为全球电信网络7号信令 xff08 SS7 xff
  • 使用route add添加路由,使两个网卡同时访问内外网

    route add命令格式 xff1a route f p Command Destination mask Netmask Gateway metric Metric if Interface 通过配置电脑的静态路由来实现同时访问内外网的
  • 手机自动访问generate_204

    近来写WiFi钓鱼demo xff0c 需要让手机连接 WiFi 后自动跳转到指定网页 xff0c 于是对手机进行dns拦截 在对手机的流量分析中发现一件很神奇的事 xff0c 手机接入WiFi后会自动访问 generate 204 以下是
  • MT7621方案 LED 灯控制 (基于OpenWrt平台)

    注 xff1a 出处不明 xff0c 最开始是在这里看到的 xff0c 图竟然没有 没有 相关资料也几乎木有 datasheet里也没有寄存器配置说明 MT7621还真是坑爹啊 xff01 目前市面上大部分路由器方案是基于MT7620的 x
  • ROS分布式通信,Jetson Nano 与PC机通信

    Jetson Nano 与PC机通信 1 环境2 SSH安装3 修改hosts文件4 修改环境变量文件 xff5e bashrc5 测试 1 环境 PC笔记本 xff1a Ubuntu 18 04 5 LTS Jetson Nano Ubu
  • .Net6.0系列-6 .Net 6LinQ(二)常用扩展方法

    一 本节学习LinQ的扩展方法 LinQ的where返回的IEnumerable 所有的括号中都可以写lamada表达式 list 数组等都可以用LinQ 以下这些方法都是可以和Where一起使用的 Count 返回的是满足条件的个数 An
  • postman简单上手教程

    1 xff1a postman浏览器已经停止更新了 xff0c 所以下面介绍的是app版本 2 xff1a 打开postman xff0c 创建自己的测试目录 xff0c 点加号创建 xff0c 这里我创建了test project 3 x
  • 实战microPython(06)-OLED屏的使用(2)

    实战microPython 06 OLED屏的使用 2 David Zou 2018 11 27 大家好 xff0c 上次介绍了OLED显示屏的相关知识 xff0c 今天 xff0c 我们进入实战 xff0c 学习如何使用OLED显示屏 如
  • C++实现HTTP上传

    插件中需要一个上传文件的功能 xff0c 我跟老大说 xff0c 我想FTP上传 xff0c 老大一瞪眼 xff0c 那还得再布个FTP服务器 xff0c 直接用HTTP上传多简单 那么C 43 43 如何将文件上传HTTP服务器上呢 xf
  • RTK和GPS定位

    首先 xff0c 简要说一下GPS和RTK的工作原理 GPS定位的基本原理是 xff0c 测量出已知位置的卫星到地面GPS接收器之间的距离 xff0c 然后接收器通过与至少4颗卫星通讯 xff0c 计算与这些卫星间的距离 xff0c 就能确
  • 基于VC6的UAV地面站(GCS)程序及源代码

    此地面站 xff08 GCS603 xff09 是早年针对北航一款小飞控开发的 xff0c 那个时候APM好像都才刚刚问世 程序具备了简单地面站的基本功能 xff0c 如界面绘制 串口数据读写 数据记录 数据帧的合成与解析 航线设置等 此程
  • ArduPlane plane 部分功能与代码移植到 GCC(Atmel studio 6.2)版本的程序源代码 HelloPilot

    几年前由于当时 ArduPlane xff08 Ver2 76 xff09 的开发环境为arduino ide 开发尤其是调试环境非常不友好 xff0c 要进行程序调试及跟踪非常不方便 xff0c 同时出于学习掌握arduplane代码原理
  • 简单的说说飞控硬件研发过程中的各种坑

    我们的飞控 xff0c 从当初第一个概念设计到现在 xff0c 历时好几年 xff0c 目前经过上百架次的试飞 xff0c 功能已经基本完备 回首前面走过的历程 xff0c 不说尸横遍野吧 xff0c 至少也是血泪斑斑 有无数的坑需要投入大
  • 1、无人系统控制站软件开发平台 CSS(Control Station Studio)概述

    1 初衷 在CSS之前 xff0c 通过参与开发数个大中型无人机地面控制站项目 xff0c 在GCS xff08 Ground Control Station xff09 设计与实现方面积累了一些经验和感悟 在先前的开发过程中 xff0c
  • .Net6.0系列-7 .Net 6LinQ(三)常用扩展方法

    一 投影 把集合中的每一项转换为另一种类型使用的是Select 方法 where 的返回集合是Enumerable 返回的是T的全部字段 而Select是可以返回集合的任意需要的字段 find 是在lamada表达式中的使用 以上两个是Li
  • 一款适于作为飞行试验平台的小四轴设计

    四轴虽小 xff0c 但也是第7版改进设计了 xff0c 定型了 xff01 优点 1 安全性高 作为实验平台 xff0c 最大的风险来自于失控 小四轴 xff08 是的 xff0c 它现在还没名字 xff09 可靠的旋翼保护圈以及其他保护

随机推荐

  • 上手Nucleo H743ZI 开发板下载失败问题解决方法

    准备研究Stm32H7 xff0c 买了块Nucleo H743ZI开发板回来研究 之前一直使用的是stm32F4 xff0c 开发环境为keil 5 13 43 STM32F4xx DFP 2 10 0 st linkV2 开工之前仔细读
  • 固定翼武德充沛,多旋翼费拉不堪

    实际飞行测试 同样的动力组合 xff1a 2205电机 43 5030 3叶桨 同样的动力电池 xff1a 2200ma xff0c 3s xff0c 20c 基本一致的起飞全重 xff1a 固定翼680g xff0c 多轴700g 续航时
  • PH7系统简介

    PH7系统简介 PH7是什么 xff1f 狭义的PH7是一套以无人机飞控为典型应用案例 xff0c 涵盖无人车或船 GCS数据采集 伺服控制 AHRS 地面模拟仿真系统等的通用控制器代码框架 xff0c 该框架以Stm32CubeMx生成代
  • 小型无人机的布线与布局设计

    小型无人机的布线与布局设计 xff0c 似乎看上去像是在总体设计当中一个细枝末节 xff0c 是往往会被忽略掉的部分 但实际上 xff0c 布线与布局虽然不像飞控算法设计 飞行平台气动设计是总体设计当中最核心和最重要的部分 xff0c 但却
  • Bread Board Pilot 即将发布

    Bread Board Pilot xff08 简称BBP xff09 为基于 PH7 代码框架 xff08 PH7 系统简介 xff09 的一款飞控快速原型开发板 相比传统飞控板 xff0c BBP 的硬件设计具有以下突出特点 xff1a
  • Mavlink 协议硬解析主要代码

    int MAVLinkProtocol ParseMsg BYTE arMsgBuf MSGVALUE pMavMsg CString amp strMsgText Function Parameters arMsgBuf 为完整的 mav
  • 网络调试助手(NetAssist)不能正常创建TCP Serve连接问题

    一 问题由来 第一次使用网络调试助手 xff08 NetAssist xff09 建立服务端 xff08 TCP Server xff09 连接时碰到链接失败的问题 xff0c 如图所示 xff0c 其原因在于本地主机端口8080被其他进程
  • postman调用J-WSSE认证方式接口

    J WSSE认证方式的内容包括 xff1a 用户名 密码 nonce 时间戳 nonce是一个随机字符串 xff1b 时间戳 Created 为W3DTF格式 xff1b 密码创建方式为 xff1a PasswordDigest 61 Ba
  • ROS 三种通信编程入门:【话题通信】【服务通信】【动作通信】

    目录 一 创建工作空间二 ROS通信编程2 1 话题编程2 2 服务编程2 3 动作编程 五 总结六 参考资料 本文内容 xff1a 学习古月居 ROS 教学课件和相关视频 xff0c 练习课件上的话题通信 服务通信编程代码示例 一 创建工
  • .Net6.0系列-8 依赖注入(一)

    依赖注入 Dependency Injection DI 是控制反转 Inversion of Control IOC 思想的实现方式 依赖注入简化模块的组装过程 降低模块之间的耦合度 DI的几个概念 服务 Service 和框架请求之后返
  • Git学习记录

    Git学习记录 概念 xff1a 两个人同时参与开发 xff0c 那么就把这个项目放在一个公共的地方 xff0c 需要的时候都可以去获取 xff0c 有什么改动 xff0c 都可以进行提交 Git就是这样一个免费 开源的分布式版本控制系统
  • Maven学习记录

    Maven学习笔记 导读 xff1a Maven 是专门用于构建和管理Java相关项目的工具 Maven的主要用处 xff1a 项目结构一致统一维护jar包 xff0c 使jar包实现共享 流程 xff1a idea配置 打开File gt
  • 软件需求总结(总)

    软件需求工程复习归纳 课程目标 xff1a 系统地掌握需求开发和管理的技术和方法掌握需求分析和建模的技术和方法掌握需求规格的验证和评审等要点和方法结合具体的实际项目开发 xff0c 解决软件项目开发中的有关需求的各种问题能够适应目前各种应用
  • C++: extern关键字功能和用法研究

    今天遇到在aaa cpp文件中定义如下函数 xff1a 在bbb h文件中有以下声明 xff1a 但在aaa cpp中没有包含相关头文件 xff0c 那么为什么可以调用相关函数 xff0c 这就是extern的功能 1 extern的功能一
  • C语言之断言

    define assert param expr expr void 0 assert failed char FILE LINE Exported functions void assert failed char file int li
  • NMEA 0183协议解析

    NMEA 0183协议是目前GNSS接收机上使用最广泛的协议 xff0c 大多数常见的GNSS接收机 GNSS数据处理软件 导航软件都遵守或者至少兼容这个协议 XXGGA 时间 经纬度位置 解算状态 卫星颗数等相关信息 单GPS GPGGA
  • HTTP Digest认证客户端的实现

    HTTP Digest认证客户端的实现 http lwccb blog 163 com blog static 116970122006727338520 networks 2006 08 27 15 38 52 阅读34 评论0 字号 x
  • 解决vscode C++代码查找所有引用“Find all reference“慢的问题

    概述 使用vscode编写C 43 43 代码右键 34 Find all reference 34 时 xff0c 发现响应特别慢 xff0c 而且很不准确 一个解决方法是使用global组件待的gtags 步骤 在VSCode中安装gt
  • 安防摄像头云端录像计划快捷配置-LiveNVR Onvif/RTSP流媒体服务

    LiveNVR Onvif RTSP流媒体服务 xff0c 支持RTSP稳定拉流接入 xff0c 支持Onvif协议接入 xff0c 支持RTMP HLS HTTP FLV分发 xff0c 将传统安防监控设备互联化 xff0c 无插件直播等
  • LiveNVR中使用Onvif协议控制预置位

    LiveNVR支持预置位控制 xff0c 包括转到指定预置位 xff0c 设置指定预置位 xff0c 删除指定预置位 预置位在安防领域有较为普遍的应用 xff0c 可以进行很多既定位置的跳转 xff0c 很方便 之前我们说过如何用Onvif