热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EasyNVRRTSP摄像机转HLS直播服务器中使用Onvif协议控制预置位

EasyNVR支持预置位控制,包括转到指定预置位,设置指定预置位,删除指定预置位预置位在安防领域有较为普遍的应用,可以进行很

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

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

之前我们说过如何用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 &#61; response->__sizeProfiles;for (int i &#61; 0; i <size; &#43;&#43;i){if (response->Profiles[i]){//Media Profile Token: response->Profiles[i]->token;//一般设备包含多个Profile Token&#xff0c;包含主码流、子码流、第三码流}}
}

预置位控制

bool result &#61; false;PTZBindingProxy* ptzProxy &#61; new PTZBindingProxy;ptzProxy->soap_endpoint &#61; ptzUrl.c_str();if (!security(ptzProxy, username, password)){delete ptzProxy;return result;}char presetToken[8];itoa(index, presetToken, 10);if (command &#61;&#61; PRESET_GOTO){_tptz__GotoPreset* preset &#61; soap_new__tptz__GotoPreset(ptzProxy, -1);_tptz__GotoPresetResponse* response &#61; soap_new__tptz__GotoPresetResponse(ptzProxy, -1);preset->ProfileToken &#61; const_cast<char*>(profile.c_str());preset->PresetToken &#61; presetToken;if (SOAP_OK &#61;&#61; ptzProxy->GotoPreset(preset, response))result &#61; true;if (response)soap_delete__tptz__GotoPresetResponse(ptzProxy, response);if (preset)soap_delete__tptz__GotoPreset(ptzProxy, preset);}else if (command &#61;&#61; PRESET_SET){_tptz__SetPreset* preset &#61; soap_new__tptz__SetPreset(ptzProxy, -1);_tptz__SetPresetResponse* response &#61; soap_new__tptz__SetPresetResponse(ptzProxy, -1);preset->ProfileToken &#61; const_cast<char*>(profile.c_str());preset->PresetToken &#61; presetToken;if (SOAP_OK &#61;&#61; ptzProxy->SetPreset(preset, response))result &#61; true;if (response)soap_delete__tptz__SetPresetResponse(ptzProxy, response);if (preset)soap_delete__tptz__SetPreset(ptzProxy, preset);}else if (command &#61;&#61; PRESET_REMOVE){_tptz__RemovePreset* preset &#61; soap_new__tptz__RemovePreset(ptzProxy, -1);_tptz__RemovePresetResponse* response &#61; soap_new__tptz__RemovePresetResponse(ptzProxy, -1);preset->ProfileToken &#61; const_cast<char*>(profile.c_str());preset->PresetToken &#61; presetToken;if (SOAP_OK &#61;&#61; ptzProxy->RemovePreset(preset, response))result &#61; true;if (response)soap_delete__tptz__RemovePresetResponse(ptzProxy, response);if (preset)soap_delete__tptz__RemovePreset(ptzProxy, preset);}delete ptzProxy;return result;

关于EasyNVR

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

详细说明&#xff1a;http://www.easydarwin.org/easynvr/

点击链接加入群【EasyNVR解决方案】&#xff1a;383501345

获取更多信息

邮件&#xff1a;support&#64;easydarwin.org

WEB&#xff1a;www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

转:https://www.cnblogs.com/babosa/p/9217751.html



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
牧高风_457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有