GB28181教程——云台控制

云台控制的逻辑,并不是大家想象的向左或者向右旋转多少度。假设你想让摄像头向左旋转一点,则需要先发送“向左旋转”指令,然后再发送“停止”指令。若只发送“向左旋转”而不发送“停止”指令,则会一直转,直到限位。在实际开发中,一般都是按下按钮发送旋转指令,松开按钮则发送停止指令。

1. 核心规则:所有控制都用 SIP INFO + MANSCDP+xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
INFO sip:34020000001310000001@3402000000 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.200:5060;branch=z9hG4bK887766
From: <sip:34020000002000000001@3402000000>;tag=ptz123
To: <sip:34020000001310000001@3402000000>;tag=abcd
Call-ID: ptz20250316@192.168.1.200
CSeq: 101 INFO
Content-Type: Application/MANSCDP+xml
Content-Length: 285

<?xml version="1.0" encoding="GB2312"?>
<Control>
<CmdType>DeviceControl</CmdType>
<SN>88888</SN>
<DeviceID>34020000001310000001</DeviceID>
<PTZCmd>A50F01020304050607</PTZCmd> ← 重点在这行
<Info>
<ControlPriority>5</ControlPriority> ← 可选,优先级1~10
</Info>
</Control>

只要把 <PTZCmd> 里的 8 字节 16 进制改了,就能控制一切。

2. 经典 12 条云台指令(背下来,永不翻车)

动作 PTZCmd(16进制) 速度说明(1~F,越高越快)
A50F01 01 00 03 0C 00 XX XX = 01~0F(垂直速度)
A50F01 02 00 03 0C 00 XX
A50F01 04 00 03 0C XX 00 XX = 01~0F(水平速度)
A50F01 08 00 03 0C XX 00
左上 A50F01 05 00 03 0C XX YY XX水平 YY垂直
右上 A50F01 09 00 03 0C XX YY
左下 A50F01 06 00 03 0C XX YY
右下 A50F01 0A 00 03 0C XX YY
停止 A50F01 00 00 00 00 00 00 全0停止
变倍大(Zoom In) A50F01 20 00 00 00 XX 00 XX = 0107(17倍速度)
变倍小(Zoom Out) A50F01 40 00 00 00 XX 00
焦距远(Focus Far) A50F02 01 00 00 00 XX 00
焦距近(Focus Near) A50F02 02 00 00 00 XX 00
光圈大 A50F02 04 00 00 00 XX 00
光圈小 A50F02 08 00 00 00 XX 00

3. 预置位、巡航、扫描全指令表

动作 CmdType PTZCmd / TeleBoot 预置位编号
调用预置位 15 DeviceControl A50F0007000F000000 0F = 15
设置预置位 16 DeviceControl A50F00030010000000 10 = 16
清除预置位 16 DeviceControl A50F00050010000000
开始自动巡航(轨迹) DeviceControl A50F01000008000100
停止巡航 DeviceControl A50F01000008000000
开始水平扫描 DeviceControl A50F02010000000000
开启雨刷 DeviceControl A50F04010000000000
开启红外 DeviceControl A50F09010000000000

预置位编号按照16进制计算,换算:
1 → 01,8 → 08,15 → 0F,16 → 10 … 最大支持 255

4. 语音对讲 & 语音广播(2022 版新增 VoiceBroadcast)

类型 CmdType 关键字段 说明
双向对讲(平台→设备) DeviceControl StartTalk 设备收到后开始收平台语音
双向对讲(设备→平台) DeviceControl StartTalkBack 设备主动发起对讲
停止对讲 DeviceControl StopTalk
语音广播(单向) DeviceControl Start 平台广播到设备
语音广播(2022版) VoiceBroadcast VoiceBroadcast 推荐写法

示例:平台发起语音广播(2022 版)

1
2
3
4
5
6
7
<Control>
<CmdType>VoiceBroadcast</CmdType>
<SN>99999</SN>
<DeviceID>34020000001310000001</DeviceID>
<BroadcastType>1</BroadcastType> <!-- 1=实时语音 -->
<Volume>80</Volume>
</Control>