您好,欢迎来到图艺博知识网。
搜索
您的当前位置:首页PSIA协议实现多品牌网络摄像头的控制

PSIA协议实现多品牌网络摄像头的控制

来源:图艺博知识网
龙源期刊网 http://www.qikan.com.cn

PSIA协议实现多品牌网络摄像头的控制

作者:王集成

来源:《商情》2020年第34期

【摘要】通过PSIA协议,控制不同厂家的网络摄像头运动,实现集中统一控制目的。并用Python语言实现了摄像头运动的相关控制。 【关键词】网络摄像头; HTTP协议; PSIA标准 1、问题提出

很多高校在建设多媒体教室和智慧教室时,一般采取分批次建设方式,造成不同批次的设备来自不同生产厂家,控制设备软件各不相同,信息很难共享,自然形成多个信息孤岛。其次,随着硬件技术不断发展,原有设备落后被淘汰,这类升级同样会造成信息孤岛。网络摄像头是最基础的使用设备,大部分教室前后各配1个摄像头,有些教室根据大小、结构和用途不同,配备4-5个摄像头(如高清录播摄像头),这些摄像头来自不同厂商(比如海康、大华、宇视、华为等),因此形成管控平台互不兼容、信息孤岛等问题需要解决。 2、视频监控行业标准和现状

视频监控行业发展至今,各设备厂商拥有自己核心技术,导致硬件设备和软件平台的异构性,加上客户需求多样性,软件二次开发变得非常复杂。业内逐步认识到行业标准重要性后,国际标准化组织0NVIF(Open Network Video Interface Forum)和PSIA(Physical Security Interoperability Alliance)应运而生,旨在解决视频监控系统中不同厂商设备的互联互通问题,为系统软硬件设备提供标准化网络接口,提高可互操作性和可移植性。

目前国际上有ONVIF、PSIA和HDCCTV三大网络视频监控标准。国内有GB/T28181联网监控标准,由组织制定的国家标准《安全防范视频监控联网系统信息传输、交换、控制技术要求》(GB/T 28181-2011)(以下简称“国标 28181”),2012年6月1日起正式实行,其核心采用 SIP 协议标准。

PSIA标准采用表象化状态转变(REST)架构,REST只需一个简单的XML解析器,运算过程较为简便,消耗资源少,管理成本低。每条PSIA请求报文清晰可读,拥有报文传输信息量小的优势。本文仅研究PSIA协议控制网络摄像头运动。 3、PSIA协议控制原理

3.1判断摄像头是否支持PSIA协议

龙源期刊网 http://www.qikan.com.cn

PSIA协议是基于HTTP协议作为网络传输协议,继承了HTTP的通用方法(GET、PUT、POST和DELETE),因此通过HTTP协议GET方法,获取网络摄像头的/PSIA/index网络地址的信息,如果支持PSIA协议,则返回XML格式的PSIA协议服务列表信息,包括System、Network、IO、Video、Audio、PTZ等服务,其中PTZ是提供网络摄像头运动服务,否则返回HTTP协议中404错误码。

3.2 PSIA协议控制摄像头运动的命令

使用PSIA协议PUT方法,向网络摄像头的/PSIA/PTZ/channels/1/continuous地址(URL地址)发送20命令信息,控制攝像头运动方向,其中20表示摄像头运动速度,一般取值范围是-100到100之间的整数,正数向正向运动,负数向反向运动,0表示停止运动。上下、左右和近远三类基本运动可任意组合,如:左上运动并拉近,左下运动并推远等组合形式。

向上运动:20 向下运动:-20 向左运动:-20 向右运动:20 拉近运动:20 推远运动:-20

停止运动:000 左上运动并拉近:-202020

3.3 Python语言实现控制网络摄像头运动的部分代码

例程需要使用HTTP协议和Basic认证,因此需要通过import urllib.request和import base语句加载相关模块。 def gbase(s):

return str(base.bencode(s.encode('utf-8')),'utf-8')

龙源期刊网 http://www.qikan.com.cn

def senddata(method, ip, url, sdata, username, pwd):

req = urllib.request.Request(method = method, url = \"http://\"+ip+url, data = sdata ) req.add_header(\"Authorization\",\"Basic %s\"%(gbase(username+\":\"+pwd))) # username,pwd是登录网络摄像头的用户名和密码 try:

res_data = urllib.request.urlopen(req) return res_data.read().decode('utf-8') except urllib.error.URLError as e: if hasattr(e,\"code\"): print(\"Error: \",e.code) return; None

def makecmd(l_r,u_d,zi_zo):#l_r,u_d,zi_zo分别是左右、上下和远近运动速度值 rs=\"%d%d%d\"%(l_r,u_d,zi_zo)

return bytes(rs,encoding=\"utf-8\") # HTTP协议要求传输字节串 def PTZup(ip,speed): #向上

senddata(\"PUT\",ip , url, makecmd(0,speed,0), username, pwd) def PTZdown (ip,speed): #向下

senddata(\"PUT\",ip , url, makecmd(0,-speed,0), username, pwd) def PTZnear(ip,speed): #拉近

senddata(\"PUT\",ip , url, makecmd(0,0,speed), username, pwd) def PTZfar(ip,speed): #推远

龙源期刊网 http://www.qikan.com.cn

senddata(\"PUT\",ip , url, makecmd(0,0,-speed), username, pwd) def PTZstop(ip,speed): #停止

senddata(\"PUT\",ip , url, makecmd(0,0,0),username, pwd) def PTZleftupzoomin(ip,speed): #左上运动并拉近

senddata(\"PUT\",ip , url, makecmd(-speed,speed,speed), username, pwd) 4、结论

运用PSIA协议实现控制海康威视和大华网络摄像头上下、左右和近远等基本控制功能,很好解决了不同品牌网络摄像头集控问题,有效屏蔽不同品牌网络摄像头的管控命令。 参考文献:

[1]阿奎.Python编程基础与HTTP接口测试[M].北京:电子工业出版社,2018.

[2]周智勇.PSIA标准的发展需要系统集成商积极支持—专访PSIA執行总监Dave Bunzel[J].中国公共安全(综合版),2009(11):25-27.

[3]朱耀麟,李倩,王昊星.ONVIF协议的网络视频监控客户端接口研究[J].西北大学学报(自然科学版),2014,44(03):392-396.

[4]郝继辉.HDcctv高清监控系统的应用[J].中防,2012(05):48-51.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务