Android平台GB28181设备接入端PTZ对接详解

PTZCmd实现背景

上一篇blog“Android平台GB28181设备接入模块之球机/云台控制探究”谈到,Android平台做国标GB28181设备接入端的时候,PTZ控制要不要处理?如果处理,难度大不大?

首先说要不要处理:如果只是做执法记录仪相关,Android终端作为数据采集模块,一般不具备云台上下、左右指令控制能力,但有一点,镜头的变倍(Zoom),如果有诉求的话,还是有技术必要性,特别是国标平台终端,对前端设备细节感兴趣的时候,可以通过Zoom In、Zoom Out来调整Android GB28181设备接入终端,实现摄像头的变焦。

其次,我们说一下技术实现难度:需要明确的一点是,目标设备不发送应答命令,所以实现起来,对我们已经有扩展性非常好的技术框架来说,难度不太大,如果从头实现,相对麻烦一些。

PTZ指令我们之前有提到过,如下图所示,Bit5和 Bit4不应同时为1,Bit3和 Bit2不应同时为1;Bit1和 Bit0不应同 时为1。镜头变倍指令、云台上下指令、云台左右指令三者可以组合。

技术实现细节

GB28181的云台控制命令,对Android平台设备接入端来说,难度不大,只需要把相应的云台控制命令字段回调到上层,上层做个解析,然后进行相应的命令控制即可。

让我们先来看看,国标平台侧发过来的控制消息:

MESSAGE sip:34020000001380000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.6:15060;rport;branch=z9hG4bK623469675
From: <sip:34020000002000000001@3402000000>;tag=119469675
To: <sip:34020000001380000001@3402000000>
Call-ID: 696469675
CSeq: 342 MESSAGE
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: GB28181 Agent
Content-Length: 267<?xml version="1.0" encoding="GB2312"?>
<Control><CmdType>DeviceControl</CmdType><SN>204469675</SN><DeviceID>34020000001380000001</DeviceID><PTZCmd>A50F0110000010D5</PTZCmd><Info><ControlPriority>5</ControlPriority></Info>
</Control>

由于PTZCmd无需发送应答命令,只需要回复200 OK即可:

SIP/2.0 200 OK
CSeq: 342 MESSAGE
Call-ID: 696469675
From: <sip:34020000002000000001@3402000000>;tag=119469675
To: <sip:34020000001380000001@3402000000>
Via: SIP/2.0/UDP 192.168.1.6:15060;rport=15060;branch=z9hG4bK623469675;received=192.168.1.6
Content-Length: 0

针对PTZ命令回调,大牛直播SDK的处理如下:

    @Overridepublic void ntsOnDeviceControlPTZCmd(String deviceId, String typeValue) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "DaniuSDK ntsOnDeviceControlPTZCmd device_id:" + device_id_ + " PTZType:" + ptz_type_);if (null == ptz_type_)return;ptz_type_ = ptz_type_.trim();if (ptz_type_.length() != 16)return;int instruction = hexStringToInt(ptz_type_.substring(6, 8));int combination_code2 = hexStringToInt(ptz_type_.substring(12, 14));if ((instruction & 0xc0) == 0 ) {if ((instruction & 0x20) != 0) {// Zoom Outint zoom_speed = getZoomSpeed(combination_code2);Log.i(TAG, "ntsOnDeviceControlPTZCmd device_id:" + device_id_ + " PTZType:" + ptz_type_ + " Zoom Out, speed:" +zoom_speed);cameraZoom(true, zoom_speed);}else if ((instruction & 0x10) != 0) {// Zoom Inint zoom_speed = getZoomSpeed(combination_code2);Log.i(TAG, "ntsOnDeviceControlPTZCmd device_id:" + device_id_ + " PTZType:" + ptz_type_ + " Zoom In, speed:" +zoom_speed);cameraZoom(false, zoom_speed);}}}private String device_id_;private String ptz_type_;public Runnable set(String device_id, String ptz_type) {this.device_id_ = device_id;this.ptz_type_ = ptz_type;return this;}}.set(deviceId, typeValue),0);}

PTZ命令的解析非常简单,只需要针对字段按照相关规范解出来即可,获取到zoom in,zoom out和zoom speed后,直接调用cameraZoom()实现针对Android摄像头变焦即可。

总结

国标平台侧通过PTZ指令,特别是针对Android的国标接入终端,实现摄像头的实时变焦,实际场景下,非常实用,特别是,如果Android平台国标设备接入端,对接有可以云台控制的RTSP摄像头,做PTZ指令的二次转发操作,也非常方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win7笔记本查看无线网卡是否“支持的承载网络”的方法

如果你笔记本电脑无线网卡可以支持的承载网络&#xff0c;那么我们就可以将无线网卡开启wifi共享&#xff0c;不过我们要怎么查看呢?就此问题&#xff0c;下面小编介绍Win7笔记本查看无线网卡是否“支持的承载网络”的方法&#xff0c;一起来学习吧! Win7笔记本查看无线网卡是…

Android平台GB28181设备接入模块摄像头采集方向不对怎么办?

背景 我们在做Android平台GB28181设备接入模块的时候&#xff0c;有开发者提到这样的诉求&#xff1a;他们的智能头盔、执法记录仪等设备&#xff0c;采集到的图像&#xff0c;是旋转了90、180甚至270的&#xff0c;设备本身无法针对图像做翻转或者旋转操作&#xff0c;问我们…

Win7系统无法复制粘贴怎么解决

现在电脑已经成为了我们每天都要使用的工具&#xff0c;然而随着使用的时间越长&#xff0c;就越容易出现各种电脑问题&#xff0c;不管是多小的问题&#xff0c;都会影响我们使用电脑。Win7系统无法复制粘贴怎么解决&#xff1f;今天请跟小编一起来看看Win7系统的电脑突然无法…

Android平台GB28181设备接入模块分辨率发生变化怎么办?

技术背景 我们在做Android平台gb28181设备接入模块的时候&#xff0c;遇到这样的情况&#xff0c;比如横竖屏分辨率不锁定&#xff0c;采集摄像头的时候&#xff0c;可以实现&#xff0c;横屏状态采集横屏&#xff0c;竖屏状态采集竖屏&#xff0c;简单来说&#xff0c;横屏状…

如何查看Win11系统的版本号

北京时间6月24日的晚上&#xff0c;微软正式的发布了全新一代的操作系统——Windows11&#xff0c;很多朋友都想第一时间去尝尝鲜&#xff0c;Win11系统有很多版本号&#xff0c;为了深入了解自己系统&#xff0c;于是想要查看一下系统版本&#xff0c;这要怎么查看呢?接下来小…

Win11无法使用以太网怎么办 Win11无法连接网络怎么办

最近有不少Windows用户都将自己的电脑升级到了Windows11系统&#xff0c;但是不少用户在使用的时候也遇到了一些问题&#xff0c;例如有些用户升级后发现自己的以太网无法使用&#xff0c;这要怎么解决呢?下面小编就带着大家一起看看吧! 操作方法&#xff1a; 1、我们可以看…

Win11系统如何设置黑暗模式

微软已经正式的发布了Windows11操作系统&#xff0c;Win11采用的是全新的界面&#xff0c;开始菜单和图标的设计&#xff0c;现在&#xff0c;暗黑模式开始逐渐流行了&#xff0c;很多朋友对黑暗主题情有独钟&#xff0c;黑色的主题特别适合晚上使用电脑&#xff0c;Win11操作系…

RTSP、RTMP播放器拉到的视频图像角度不对怎么办?

我们在做RTSP、RTMP播放器的时候&#xff0c;遇到这样的诉求&#xff1a;特别是RTSP&#xff0c;有些摄像头安装可能倒置或者旋转了90亦或270&#xff0c;拉取到图像&#xff0c;势必需要对视频图像做一定的处理&#xff0c;确保显示正常。 为此&#xff0c;我们提供了以下接口…

Android平台GB28181设备接入端如何调节实时音量?

我们在对接Android平台GB28181设备接入端的时候&#xff0c;有开发者提出这样的疑惑&#xff0c;如何调整设备接入端的实时音量&#xff1f; 实际上&#xff0c;这块我们前几年在做RTMP直播推送模块的时候&#xff0c;已经发布了相关的接口&#xff0c;这里再回顾下&#xff1…

Win10系统如何查看声卡ID

在Win10系统的日常使用过程中&#xff0c;我们可能经常需要去查看电脑的声卡ID&#xff0c;但很多小伙伴都不知道要如何查看声卡ID&#xff0c;那么碰到这种情况时&#xff0c;Win10系统如何查看声卡ID呢?下面就和小编一起来看看Win10系统查看声卡ID的方法吧。 Win10系统如何查…

Win10系统如何退出桌面磁贴功能

桌面磁贴是Modern开始界面下的那些方格&#xff0c;但是很多小伙都用不太习惯却不知道如何去关闭这个功能&#xff0c;那么Win10系统如何退出桌面磁贴功能呢?就此问题&#xff0c;下面小编整理了Win10系统退出桌面磁贴功能的解决方法&#xff0c;一来看看解决办法吧。 Win10系…

【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

技术背景 这几年&#xff0c;我们对接了太多有RTSP或RTMP直播播放器诉求的开发者&#xff0c;他们当中除了寻求完整的解决方案的&#xff0c;还有些是技术探讨&#xff0c;希望能借鉴我们播放端的开发思路或功能特性&#xff0c;完善自己的产品。 忙里偷闲&#xff0c;今天我…

我正在参加2022年度博客之星评选,大家帮我点个五星好评

大家好&#xff0c;我是音视频牛哥&#xff0c;致力于跨平台的实时RTMP推流、转发、RTMP/RTSP直播播放、GB28181设备接入。 有幸参加2022年度博客之星评选&#xff0c;欢迎大家帮点五星好评。如果我的博客能给开发者带来哪怕一丝启发&#xff0c;对博主来说&#xff0c;也甚感…

Win10系统切换输入法快捷键设置方法

无论是家用电脑还是办公电脑&#xff0c;一般都没有单一的输入法。有些人每次使用时都必须使用鼠标单击&#xff0c;其实真的很麻烦。Windows10系统切换输入法与以往的都不同&#xff0c;Win10系统如何修改切换输入法按键?就此问题&#xff0c;小编今天就把Win10切换输入法快捷…

rtmp/rtsp/hls公网真正可用的测试地址

相信大家在调试播放器的时候&#xff0c;都有这样的困惑&#xff0c;很难找到合适的公有测试源&#xff0c;以下是大牛直播SDK&#xff08;GitHub地址&#xff09;整理的真正可用的直播地址源。 其中&#xff0c;rtmp和rtsp的url&#xff0c;用我们播放器验证通过。 1. rtmp:…

Firefox火狐浏览器怎么设置中文 火狐浏览器语言设置方法

如果下载的是官方版的火狐浏览器&#xff0c;默认的预言可能会是英文版的&#xff0c;如何将火狐浏览器设置中文的呢? 1、打开浏览器&#xff0c;在地址栏中输入about:config&#xff0c;然后按下回车。 2、在列表中找到“general.useragent.locale”&#xff0c;双击&#…

公网可用的RTMP、RTSP测试地址(更新于2021年3月)

好多博客提到的公网可测试的RTSP和RTMP URL大多都不用了&#xff0c;以下是大牛直播SDK(Github)于2021年3月亲测可用的几个URL&#xff0c;有其他可用的URL&#xff0c;也欢迎大家在评论区回复。 RTMP流地址 湖南卫视&#xff1a;rtmp://58.200.131.2:1935/livetv/hunantv (7…

Unity环境下RTMP推流+RTMP播放低延迟解决方案

在本文之前&#xff0c;我们发布了Unity环境下的RTMP推流&#xff08;Windows平台Android平台&#xff09;和RTMP|RTSP拉流&#xff08;Windows平台Android平台iOS平台&#xff09;低延迟的解决方案&#xff0c;今天做个整体汇总&#xff0c;权当抛砖引玉。 1. Unity环境下RTM…

mac怎么设置默认浏览器 mac默认浏览器设置方法

现在很多人都开始使用mac电脑&#xff0c;而有些人不大喜欢Safari浏览器&#xff0c;或许也有别的原因导致用户想要将Mac OS X系统下的默认浏览器换成其他更符合自己口味的浏览&#xff0c;如果你你不会换&#xff0c;那就由小编为你解答mac怎么设置默认浏览器。 mac默认浏览器…

麒麟操作系统|Linux下低延时RTMP|RTSP直播播放实现

背景 国产操作系统多为以Linux为基础二次开发的操作系统。2014年4月8日起&#xff0c;美国微软公司停止了对Windows XP SP3操作系统提供服务支持&#xff0c;这引起了社会和广大用户的广泛关注和对信息安全的担忧。而2020年对Windows7服务支持的终止再一次推动了国产系统的发展…