实现功能:相机截图、获取预置点、移动到预置点、变焦

pip3 install --upgrade onvif_zeep

获取截图 python3 ok 300ms

python2 error:

Unknown error: super() takes at least 1 argument (0 given)

from onvif import ONVIFCamera

import zeep

import time

import requests

from requests.auth import HTTPDigestAuth

def zeep_pythonvalue(self, xmlvalue):

return xmlvalue

class Onvif_hik(object):

def __init__(self, ip: str, username: str, password: str):

self.ip = ip

self.username = username

self.password = password

zeep.xsd.simple.AnySimpleType.pythonvalue = zeep_pythonvalue

self.save_path = "./{}T{}.jpg".format(self.ip, str(time.time())) # 截图保存路径

def content_cam(self):

"""

链接相机地址

:return:

"""

try:

self.mycam = ONVIFCamera(self.ip, 80, self.username, self.password)

self.media = self.mycam.create_media_service() # 创建媒体服务

self.media_profile = self.media.GetProfiles()[0] # 获取配置信息

self.ptz = self.mycam.create_ptz_service() # 创建控制台服务

return True

except Exception as e:

return False

def Snapshot(self):

"""

截图

:return:

"""

res = self.media.GetSnapshotUri({'ProfileToken': self.media_profile.token})

response = requests.get(res.Uri, auth=HTTPDigestAuth(self.username, self.password))

with open(self.save_path, 'wb') as f: # 保存截图

f.write(response.content)

def get_presets(self):

"""

获取预置点列表

:return:预置点列表--所有的预置点

"""

presets = self.ptz.GetPresets({'ProfileToken': self.media_profile.token}) # 获取所有预置点,返回值:list

return presets

def goto_preset(self, presets_token: int):

"""

移动到指定预置点

:param presets_token: 目的位置的token,获取预置点返回值中

:return:

"""

try:

self.ptz.GotoPreset(

{'ProfileToken': self.media_profile.token, "PresetToken": presets_token}) # 移动到指定预置点位置

except Exception as e:

print(e)

def zoom(self, zoom: str, timeout: int = 0.1):

"""

变焦

:param zoom: 拉近或远离

:param timeout: 生效时间

:return:

"""

request = self.ptz.create_type('ContinuousMove')

request.ProfileToken = self.media_profile.token

request.Velocity = {"Zoom": zoom}

self.ptz.ContinuousMove(request)

time.sleep(timeout)

self.ptz.Stop({'ProfileToken': request.ProfileToken})

libxml/xmlversion.h: No such file or directory

解决办法

sudo apt-get install libxml2-dev libxslt-dev

cv2.imdecode(np.fromstring(response.content, np.uint8), 1)

onvif python3 推送音频_Python3-onvif协议之相机截图相关推荐

  1. ad域推送软件_Python3.6.4 软件安装教程

    Python-3.6.4 软件安装教程 01 Python-3.6.4 软件安装教程 软件介绍 Python-3.6.4(32/64)位 Python的设计目标之一是让代码具备高度的可阅读性.它设计时 ...

  2. 基于mqtt协议的消息推送服务器,基于 MQTT 协议的推送服务

    一.简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级& ...

  3. java xmpp消息推送_基于XMPP协议(openfire服务器)的消息推送实现

    最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过Java PC客户端消息推送,从原理讲上应该是一致的,在这里分享一下个人的心得. 消息推送实现原理 这里的消息推送,通常 ...

  4. php消息实时推送技术,基于HTTP协议之WEB消息实时推送技术原理及实现

    很早就想写一些关于网页消息实时推送技术方面的文章,但是由于最近实在忙,没有时间去写文章.本文主要讲解基于 HTTP1.1 协议的 WEB 推送的技术原理及实现.本人曾经在工作的时候也有做过一些用到网页 ...

  5. springboot+websocket+sockjs进行消息推送【基于STOMP协议】

    1.浅谈WebSocket WebSocket是在HTML5基础上单个TCP连接上进行全双工通讯的协议,只要浏览器和服务器进行一次握手,就可以建立一条快速通道,两者就可以实现数据互传了.说白了,就是打 ...

  6. EasyPusher安卓Android手机直播推送之RTSP流媒体协议流程

    EasyPusher移动端推送同我们平时用的RTSP直播推送流程一样,都是采用标准RTSP/RTP推送流程:ANNOUNCE->SETUP->PLAY->RTP/RTCP->T ...

  7. Python3-onvif协议之相机截图

    实现功能:相机截图.获取预置点.移动到预置点.变焦 pip3 install --upgrade onvif_zeep 获取截图 python3 ok 300ms python2 error: Unk ...

  8. 【基于libRTMP的流媒体直播之 AAC、H264 推送】

    这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以 ...

  9. 服务器主动推送消息数据给客户端

    1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...

  10. Windows平台RTMP/RTSP直播推送模块设计和使用说明

    开发背景 好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的W ...

最新文章

  1. 系统管理模块_部门管理_设计(映射)本模块中的所有实体并总结设计实体的技巧_懒加载异常问题_树状结构...
  2. ftp 服务器的目录文件是否存在,ftp服务器的目录文件是否存在
  3. [NOI2009] 植物大战僵尸
  4. 物联网Wi-Fi配网方式,你知道几种?
  5. 史上最全Java多线程面试题
  6. 模拟监控和真实用户体验监测,选哪个?
  7. 字典树实现_trie 字典树的实现方法
  8. Glib2之dbus用法(五)
  9. [文摘]Java正则表达式详解
  10. 图像、帧、片、NALU
  11. cmd下载的python包,pycharm中却无法使用
  12. 白箱测试、黑箱测试、回归测试?
  13. 适合学龄前孩子看的动画片 小蜜蜂(蜂来乐)值得推荐
  14. Oracle database TSPITR(TableSpace Point-In-Time Recovery) 表空间基于时间点的恢复
  15. Windows 10 uefi引导模式 GPT+UEFI Ghost系统备份还原步骤
  16. java具名参数_Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)...
  17. 基于改进人工蜂群算法的K均值聚类算法(Matlab代码实现)
  18. [附源码]java毕业设计小说网站的设计与实现1
  19. Alpine 安装 MySQL
  20. CVTE 2017春季校招技术类面试问题

热门文章

  1. ble mesh 学习笔记(9)telink的mesh-lpn代码分析
  2. python中的复数操作(实部、虚部、求模、求共轭)
  3. 爸爸去哪儿第三季之刘诺一8.1第四期
  4. 逻辑运算符在c语言里的作用,C语言逻辑运算符有哪些
  5. 董明珠成为带货女王,并非格力值得高兴的事情
  6. 【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)
  7. CDR绘制抖音APP图标
  8. Windows server 2012 R2 服务器强制删除文件夹
  9. 第三周:tesseral 2D软件的使用
  10. 西北师范大学计算机科学与工程学院导师,西北师范大学计算机科学与工程学院导师简介-陈旺虎...