视频服务器与接入服务器协议资料.docx
《视频服务器与接入服务器协议资料.docx》由会员分享,可在线阅读,更多相关《视频服务器与接入服务器协议资料.docx(52页珍藏版)》请在冰点文库上搜索。
视频服务器与接入服务器协议资料
文档编号:
TA001
版本:
2.0
作者:
李文军
项目经理:
陈小群
全球眼平台系统视频服务器与接入服务器接口协议
接口规格说明
复审人
部门
姓名和职务
开发部
陈小群
修改历史
日期
修改人姓名
注释
2004-06-04
李文军
第一次建立文件
2005-03-01
李文军
修改了呼叫、视频参数等接口
2005-05-17
李文军
完整的检查了所有接口
2005-07-01
李文军
采用新的规范编写
2005-11-08
李文军
报警协议的新修改
1引言
视频服务器设备从硬件上来说,主要由:
1、运行视频服务器的程序的具有PC功能的机器;2、提供视频处理的DSP芯片;3、提供视频源的摄像头、云台,控制云台镜头的解码器;4、提供报警的报警箱;5、提供音频的拾音器组成。
它主要完成模拟视音频信号的数字化,数字化后的视音频信号采用MPEG-4视频压缩算法和G.729音频压缩算法进行压缩编码,然后通过IP网将编码后的音视频数据以IP包的形式传送给监控服务器或远端用户,实现视音频信号的网络传输、网络监控和网络存储,同时可以支持远程的云镜控制和远程报警管理。
接入服务器是视频服务器是消息唯一接口,任务客户端消息都需经过接入服务器转发。
2接口规格说明约定
2.1数据类型定义
N:
整数
N+:
正整数(不包含0)
R:
浮点型数
R+:
正浮点型数
Byte:
一个字节范围的数(0-255)
C:
单个字符
S:
字符串
X:
十六进制的流
DT:
日期/时间格式字符串(2003-12-2003:
02:
13)
LDT:
linux下的时间字符串(060215482004.45表示6月2日15点48分2004年45秒)
D:
日期格式字符串(2003-12-20)
T:
时间格式字符串(03:
02:
13)
T+:
时间小时和分钟格式字符串(03:
02)
B:
布尔类型(0、1)
B+:
布尔类型的字符串表示(false、true)
IP:
IP地址格式的字符串(172.16.29.223)
2.2指令头
4Bytes
4Bytes
4Bytes
4Bytes
32Bytes
32Bytes
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
指令头中的各字段设置:
版本号为257
指令长度指令中XML格式数据的长度。
如果没有XML信息,长度为0。
指令编号其它地方另行定义
指令序号指令发起者自己设定的一个数值,对应的指令返回头中指令序号与它完全相同
源ID发起者的自身的业务ID
目地ID操作目标的业务ID
2.3指令返回头
4Bytes
4Bytes
4Bytes
4Bytes
4Bytes
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
指令返回值头中的各字段设置:
版本号为接收到指令的版本号
指令长度为指令返回值中XML格式数据的长度
指令编号为接收到的指令中的指令编号加一
指令序号为接收到的指令中的指令序号
成功标志为0表示成功,其它表示错误序号
2.4指令
发送指令格式:
指令头+XML格式的附加信息(如果指令长度为0,则该项没有)
指令返回值格式:
指令返回值头+XML格式的附加信息(如果指令长度为0,则该项没有)
2.5TCP/IP控制约定
本系统指令格式采用TCP的方式。
套接字的关闭都是主动发起者来完成。
3接口规格说明
3.1设备类型编号
设备
宏定义
值
用户
TYPE_USER
1
前端服务器
TYPE_TERMINAL
2
分发服务器
TYPE_DISPATCH
3
存储服务器
TYPE_STORE
4
摄像头
TYPE_CAMERA
5
报警器
TYPE_ALARM
6
显示墙
TYPE_DISPLAY
7
3.2具体接口规格
这里将全部列出视频服务器和接入服务器的消息控制的具体接口协议。
注意,在 下面每一个指令返回头信息的成功标志信息中,都只是列出了0正确的信息。
错误的信息在协议中没有太硬性规定,请各自设置。
3.2.1视频服务器的注册
[功能]将视频服务器注册到中心,以便于中心管理。
同时通过设备ID可以检测设备的真伪。
获取视频服务器以及子设备的业务ID。
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
2002
0
\0
\0
因为注册时,设备还没有获取自身的业务ID,所以源ID和目的ID都填写0
XML:
视频连接端口(N)
对讲呼叫连接端口(N)
消息端口(N)
1
是否支持预案(旧的前端是没有此属性的)1:
支持>
其中连接类型:
1是LAN,2为ADSL,3为其它类型。
视频的最大连接数是指前端和网络带宽能够支持的最大视频路数。
[返回结果格式]
返回值头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
2003
0
0
XML:
FtpPwd=“FTP的密码”StorePlanHourFlag=“存储方案(S)”/>
返回值:
设备ID和子设备ID号只在注册验证设备的真伪才有用。
一但验证通过以后交互的都是中心赋予的业务ID号。
HeartCycle表示心跳周期。
SysRebootTime和SysRebootCycle是为了避免前端死机。
而采用的一种重起机制。
SysRebootCycle表示重起周期。
SysRebootTime表示重起时刻。
如15:
45。
表示在15点45分重起。
CurrentDateTime是中心的时间。
060215482004.45表示为6月2号15点48分2004年45秒。
以便让前端和中心同步时间。
子节点中每个Camera表示一个摄像头。
其中ID为摄像头的业务ID,HasPan表示是否有云台。
在里面的子节点StoreScheme表示此摄像头的存储有关的信息。
IsLocaleSaved是否本地存储。
如果不是,则指定存储服务器的IP。
以及ftp上传的一些信息,如FtpUser、FtpPwd、RemotePort等等。
StorePlanHourFlag表示存储方案,是一个168字符的0或1。
表示以一周168个小时为单位,从星期日开始,1表示存。
0表示不存。
子节点中每个AlarmIn表示一个报警输入。
ID为报警输入的业务ID。
子节点中每个AlarmOut表示一个报警输出。
ID为报警输出的业务ID。
3.2.2视频服务器的心跳
[功能]主动向中心报告自己的状态。
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
2
0
前端业务ID
\0
XML:
TYPE_TERMINAL
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
3
0
0
XML:
注意:
心跳信息如果在一次不成功后,在等待10秒后再次发送一次。
如果还是不成功就认为视频服务器心跳失败,然后必须使用[3.2.27]协议来尝试重新注册!
3.2.3实时音视频的请求协议
[功能]视频的浏览有三次交互过程,共有三个协议。
第一次是被动接收视频请求协议,由客户端发起从接入服务器转发过来;然后是第二次由客户端直接发起的到视频服务器的视频连接协议。
第三个协议是在视频开始和结束时发送的报告协议。
第一个和第三个协议在本文件中描述,分别为:
3.2.3和3.2.4。
第二个视频连接协议在《企业客户端和视频服务器协议》中的2.1 。
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
5010、6002
0
客户端SessionID
摄像头ID
XML:
前端业务ID(S)
连接的验证信息(S[31])
DevDataID是前端业务ID,用于校验。
Ticket 为验证信息,表示作为下次视频连接的依据。
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
5011,6003
0
0
指令编号:
5011是对应企业客户端的返回请求,6003是对应显示服务器的返回请求。
XML:
连接的验证信息(S)
视频连接端口(N)
视频编码器的类型(S)
其中 Ticket表示回送发送的Ticket,VideoPort表示为视频连接的端口,Protocol 表示为视频解码的类型。
3.2.4视频开始和结束的报告协议
[功能]这是个主动发起协议。
在视频连接开始和结束时,向接入服务器发送一个报告,作为以后记费的依据。
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
4
0
前端业务ID
0
XML:
连接的验证信息(S)
服务器类型(N+)
开始和结束标志(B)
Ticket为视频请求时的验证信息。
DevType为前端类型TYPE_TERMINAL。
Switch中1表示开始,0表示结束。
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
5
0
0
XML:
无
3.2.5前端解码器、报警器控制协议文件下载协议
[功能]首先先从视频服务器上设置具体的协议编号,然后主动向中心下载解码器、报警器控制协议文件。
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
2004
0
前端业务ID
\0
XML:
Key指定要下载的协议的具体编号。
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
2005
0
0
XML:
User=“用户名(S)”Pwd=“密码(S)”Path=“路径(”/>
根据返回的XML信息,就可以主动从指定的FTP服务器上下载具体协议文件。
FtpAddress是指协议文件的IP地址,FtpPort指端口,User指用户名,Pwd指密码,Path指协议文件的相对于FTP主目录的路径。
3.2.6前端程序手动更新协议
[功能]手动更新分为两组指令:
一、更新请求,如果请求通过后,就可以更新了;二、更新。
1、被动更新请求
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
8010
0
客户端SessionID
前端业务ID
XML:
这个表示客户端要更新程序的版本。
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
8011
0
0
XML:
无。
2、更新
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
8012
0
客户端SessionID
前端业务ID
XML:
通过通过指定返回的FTP服务器的一些信息来获取更新包。
FtpAddress是指写协议的IP,FtpPort指端口,User指用户名,Pwd 指密码,Path指更新包相对于FTP主目录的路径。
FileName为更新包的文件名。
然后前端通过这些信息到指定服务器和路径下载更新就可以了。
[返回结果格式]
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
成功标志
(N)
257
XML的长度
8013
0
0
XML:
无。
更新成功后,返回更新的结果。
3.2.7控制云台协议
[指令格式]
指令头:
版本号
(N)
指令长度
(N)
指令编号
(N)
指令序号
(N)
源ID
(S)
目地ID
(S)
257
XML的长度
5006
0
客户端SessionID
摄像头ID
XML:
有两种xml协议。
第一种为基本协议,必须实现。
第二种为扩展协议。
●第一种基本协议:
云台镜头控制命令无论多长时间,只发送一次。
0-20
0-20分别代表:
0#停止
1#云台上
2#云台下
3#云台左
4#云台右
5#光圈+
6#光圈-
7#变倍+
8#变倍-
9#聚焦+
10#聚焦-
11#云台自动扫描开
12#云台自动扫描关
13#灯光开
14#灯光关
15#雨刷开
16#雨刷关
17#探头电源开
18#探头电源关
19#摄头电源开
20#摄头电源关
●第二种为扩展协议:
云台镜头控制命令在需保持动作时,需在1秒以内重复发码。
每一个指令分别叙述如下:
¡进入菜单模式
8100
¡开自动光圈
8102
1
¡关自动光圈
8102
0
¡开背光补偿
8104
1
¡关背光补偿
8104
0
¡开数字变倍
8106
1
¡关数字变倍
8106
0
¡自动切换夜视功能
8108
1
¡手动切换夜视功能
8108
0
¡转换为彩色显示
8110
1
¡转换为夜视显示
8110
0
¡云台方向速度控制
8200
其中:
Direct中U、D、L、R分别表示上下左右。
Speed表示速度从1-255之间。
¡停止方向速度控制
8202
¡开随机线扫
8204
1
¡关随机线扫
8204
0
¡设置预置点
8206
预置点号(N+)
¡清除预置点
8208
预置点号(N+)
¡调用预置点
8210
预置点号(N+)
速度(1~255)
¡清除所有预置点
8212
¡180度翻转
8214
速度(1~255)
¡开看守位
8216
1
¡关看守位
8216
0