树莓派python实现http请求控制海康威视摄像头转动

2023-05-16

由于海康威视sdk只支持x86架构处理器,所以官方的.so无论无何也连接不上,于是在咨询技术售后后,我们选择http的方式发送指令控制摄像头在预设点移动。折腾了一天,又是cookie啊,又是联系客服要isapi啊,后来终于折腾好了,下面是代码。
https://github.com/Linkcy97/hikvision-http-control

import requests
from requests.auth import HTTPDigestAuth
import time

# 摄像头ip地址 用户名 密码
ip = '10.168.1.166'
admin = 'admin'
password = 'actl9239'

def preset_point(point):
    """预设点位"""
    session = requests.Session()
    url = 'http://%s/ISAPI/PTZCtrl/channels/1/presets/%d/goto' % (ip, point)
    session.put(url, auth=HTTPDigestAuth(admin, password))


def pan_tilt_move(pan_speed=0, tilt_speed=0, second=1):
    """控制摄像头旋转
    :param pan_speed:水平旋转:大于0右转,小于0左转
    :param tilt_speed:垂直旋转:大于0上升,小于0下降
    :param second:旋转的持续时间
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/PTZCtrl/channels/1/continuous/' % ip
    # response = requests.put(url, auth=HTTPDigestAuth('admin', 'actl9239'))
    # response = requests.put(url,param1, auth=HTTPDigestAuth('admin', 'actl9239'))
    param = "<PTZData><pan>%s</pan><tilt>%s</tilt></PTZData>" % (pan_speed, tilt_speed)
    param1 = "<PTZData><pan>0</pan><tilt>0</tilt></PTZData>"
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))
    time.sleep(second)
    session.put(url, data=param1, auth=HTTPDigestAuth(admin, password))


def change_wdr(mode='close', level=0):
    """设置宽动态等级
    :param mode:宽动态打开还是关闭 open or close
    :param level:宽动态等级 0-100
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/Image/channels/1/WDR' % ip
    param = "<WDR><mode>%s</mode><WDRLevel>%d</WDRLevel></WDR>" % (mode, level)
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))


def change_color(brightness=50, contrast=50, saturation=50):
    """
    改变摄像头拍照参数
    :param brightness: 亮度 0-100
    :param contrast: 对比度 0-100
    :param saturation: 锐度 0-100
    :return:
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/Image/channels/1/color' % ip
    param = "<Color>" \
            "<brightnessLevel>%d</brightnessLevel>" \
            "<contrastLevel>%d</contrastLevel>" \
            "<saturationLevel>%d</saturationLevel>" \
            "</Color>" % (brightness, contrast, saturation)
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))


def change_hlc(enabled='false'):
    """
    摄像头强光抑制
    :param enabled:开启true 关闭false
    :return:
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/Image/channels/1/HLC' % ip
    param = '<HLC><enabled>%s</enabled></HLC>' % enabled
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))


def change_scenario(mode='custom1'):
    """
    设置摄像头场景
    :param mode:场景模式 可选值:indoor outdoor day night morning nightfall street lowIllumination custom1 custom2
    :return:
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/Image/channels/1/mountingScenario' % ip
    param = '<MountingScenario><mode>%s</mode></MountingScenario>' % mode
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))


def change_zoom(zoom,second=1.0):
    """
    摄像头变焦
    :param zoom:倍数 大于0放大 小于0缩小
    :param second:持续时间
    :return:
    """
    session = requests.Session()
    url = 'http://%s/ISAPI/PTZCtrl/channels/1/continuous' % ip
    param = '<PTZData><zoom>%d</zoom></PTZData>' % zoom
    param1 = '<PTZData><zoom>0</zoom></PTZData>'
    session.put(url, data=param, auth=HTTPDigestAuth(admin, password))
    time.sleep(second)
    session.put(url, data=param1, auth=HTTPDigestAuth(admin, password))

if __name__ == '__main__':
    pass


就可以控制摄像头在预设点之间移动。其他的控制方法可以在海康威视控制界面 按
f12 去查看。

** 2022.7.4更新 基本功能已经完善**

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

树莓派python实现http请求控制海康威视摄像头转动 的相关文章

随机推荐

  • 并发编程 - AQS 源码

    1 AQS 源码 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java io Seriali
  • 解决C++中两个类的头文件互相包含问题

    转载 xff1a 134条消息 C 43 43 中两个类的头文件互相包含问题 道道道人间道的博客 CSDN博客 c 43 43 头文件互相包含 我们知道 xff0c 当一个类 xff08 设类A xff09 中包含另一个类 xff08 设类
  • 用递归的方法将整数n转换成字符串

    span class token keyword int span span class token function main span span class token punctuation span span class token
  • 关于&&和||的优先级问题

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • cpu与外设之间传送数据的时存在的问题

    一 速度不匹配 I O设备的速度比cpu慢很多 xff0c I O设备的不同速度差异也很大 二 时序不匹配 每个I O设备都有自己的定时控制电路 xff0c 无法与cpu取得统一 三 信息格式不匹配 不同的I O设备存储和处理信息的格式不同
  • 微机原理计算机基础部分简答题

    简述数据总线和地址总线各自具有的特点 xff0c 如果数据总线和地址总线采用同一组信号线有什么办法将地址总线分类出来 数据总线的特点为双向三态 xff0c 数据总线位数决定cpu一次传输二进制信息的位数 地址总线的特点为单向三态 xff0c
  • 部署IIS后dll not found

    问题 xff1a Could not load file or assembly 39 XX 39 or one of its dependencies An attempt was made to load a program with
  • 汇编指令对标志位的影响

    MOV LEA XCHG PUSH POP IN OUT 传送类指令不影响标志位 ADD ADC SUB SBB CMP 加减法指令影响全部标志位 INC DEC 增一减一指令不影响CF NEG 求补指令影响除CF外的5个标志位 xff0c
  • 微处理器部分简答题

    简述8086和8088cpu的相同点和不同点 相同点 xff1a 内部数据总线均为16位 xff0c 寄存器和指令系统完全兼容 不同点 xff1a 8086的外部数据总线为16位 xff0c 8088外部数据总线为8位 xff1b 8086
  • 大浪淘沙

    裸机指的是未装备任何软件的计算机 计算机的运行速度的单位是MI S xff0c 其含义是每秒钟执行百万条指令 影响cpu处理速度的主要因素是字长 主频 ALU 有无cache 冯诺依曼原理的基本思想是程序存储和程序控制 第一代计算机采用的电
  • 关于字符数组和字符指针

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • YOLOv5核心基础知识讲解

    我这主要是江大白老师的内容 xff01 xff01 深入浅出Yolo系列之Yolov3 amp Yolov4 amp Yolov5 amp Yolox核心基础知识完整讲解 xff08 CSDN xff09 深入浅出Yolo系列之Yolov5
  • 自旋锁的实现原理

    自旋锁的实现原理 自旋锁的介绍 自旋锁和互斥锁比较相似 xff0c 都是为了实现保护共享资源而提出的一种锁机制 xff0c 在任何一个时刻 xff0c 只有一个执行单元可以获取该锁 xff0c 如果该锁已经被别的单元占用 xff0c 那么调
  • 计算机网络(传输层)

    UDP 和 TCP 的特点UDP 首部格式TCP 首部格式TCP 的三次握手TCP 的四次挥手TCP 可靠传输TCP 滑动窗口TCP 流量控制TCP 拥塞控制 1 慢开始与拥塞避免2 快重传与快恢复 网络层只把分组发送到目的主机 xff0c
  • STM32 USART_Init() 初始化函数中BRR寄存器设置解析

    首先了解一下BRR寄存器的构造 xff1a 可以看到bit15 4设置USARTDIV的整数部分 xff0c bit 3 0设置USARTDIV的小数部分 所以小数部分相当于把1分为16份 xff0c 则DIV Fraction 61 小数
  • 安装libcxsparse3.1.2报错

    报错显示 xff1a yjq 64 yjq sudo apt get install liblapack dev libsuitesparse dev libcxsparse3 1 2 libgflags dev 正在读取软件包列表 完成
  • 网络技术基础(16)

    一 xff1a M HSRP的实施 1 1 HSRP 应用场景 1 路由器物理接口下 2 路由器逻辑子接口 3 xff5d 多层交换机SVI 接口下 1 2 M HSRP 定义 多组的HSRP xff0c 实际上就是一个接口参与多个HSRP
  • windows enable long environment path

    windows gt gpedit msc gt enter Edit Group Policy gt Local Computer Policy gt Computer Configuration gt Administrative Te
  • OpenMV与stm32,msp432等单片机的串口通讯(已经写好一个识别色块的例程,可直接使用)keil(MDK)

    OpenMV与stm32单片机的串口通讯 已经写好一个识别并使单片机得到色块信息的例程 可直接使用 keil MDK 已经写好一个识别色块的例程可直接使用 识别色块 单片机得到色块的中心坐标cx cy 长和高w h及面积s 直接复制源码使用
  • 树莓派python实现http请求控制海康威视摄像头转动

    由于海康威视sdk只支持x86架构处理器 xff0c 所以官方的 so无论无何也连接不上 xff0c 于是在咨询技术售后后 xff0c 我们选择http的方式发送指令控制摄像头在预设点移动 折腾了一天 xff0c 又是cookie啊 xff