已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSON接口设计(VMS)V 0.1赛特斯网络科技有限公司2011年06月版本控制版本号日期修改人说明V1.0Jun 25, 2011朱广文文档建立、初始化Jun 25, 2011王小黎增加部分事件格式Dec 2 ,2011蒋兴杰文档更新目 录目 录1一、JSON中的基本数据类型31.对象Object:32.数组Array33.值value44.字符串string55.数值number5二、JSON数据通讯接口61.事件类型和返回结果:62.BOOT消息:63.KEEPALIVE消息:84.ALARM消息:105.Config消息:146.Query消息:15三、JSON接口设计补充说明22一、 JSON中的基本数据类型1. 对象Object:例子:EventCOde:1object中必须是piar对或者空组成。2. 数组Array例子:X_CERTUS_IPTV.STBINFO.PollInfo.mosstatus,array中必须是value,或者多个value组成。3. 值value值可以是string,number,object,array,true,false,null中的任意一个,用来与key配对成pair形式,key必须是string,pair的一个例子:SerialNumber:EB100100000000400000001E73AB5038或者DeviceId:ServiceUser:nocqiuhao02,MAC:00:1e:73:ab:50:38,Manufacturer:ZTE,OUI:00D0D0,ProductClass:STB,SerialNumber:EB100100000000400000001E73AB5038这是一个key:object的pair。4. 字符串string例子:SerialNumber注意转义符的用法。5. 数值number二、 JSON数据通讯接口JSON数据通讯共有4个通讯接口,分别为BOOT、KEEPALIVE、ALARM和POLL信令,其采用一次交互流程进行交互。以下为根据QCS和VMS通讯协议制定的通讯数据样例。1. 事件类型和返回结果: 基本事件类型定义如下,可扩展:JSON_UNKNOW_TYPE = 0, / 未知类型JSON_BOOT_EVENT_TYPE = 1, / 开机消息类型JSON_KEEPALIVE_EVENT_TYPE = 2, / 定期上报类型JSON_ALARM_EVENT_TYPE = 3, / 报警类型JSON_GETCHANNEL_EVENT_TYPE = 4, / 获取频道列表类型JSON_CAQUAL_EVENT_TYPE = 5, / 内容层告警类型JSON_CONFIG_EVENT_TYPE = 6, / 配置下发类型JSON_QUERY_EVENT_TYPE = 7 / 主动查询类型eventCode = JSON_?_EVENT_TYPE, subEvent:0代表请求,subEvent:1代表响应。 基本返回结果定义如下,可扩展:JSON_OK = 0, / OKJSON_UNKNOW_ERROR = -1, / 未知错误JSON_FORMAT_ERROR = -2, / 数据格式错误JSON_DATABASE_ERROR = -3, / 数据库访问错误JSON_PARAMETER_ERROR = -4, / 参数格式错误JSON_SYSTEM_ERROR = -5, / 系统错误JSON_EVENT_TYPE_ERROR = -6, / 事件类型错误JSON_MEMORY_ERROR = -7, / 系统内存错误JSON_SERVICE_ERROR=-8, /程序错误JSON_BUF_TOO_SMALL_ERROR=-9,/设置的JSON缓存太小JSON_NO_STREAM_ALARM=-10/获取断流的数据不可得2. BOOT消息: VMS-QCS的消息例子::8080/QCS/booteventType:eventCode:1,subEvent:0,deviceId:name:hp1005,mac:00:00:00:00:00:00,manufactory:CERTUS,osVersion:2.6.18-194.32.1.el5PAE,productClass:VA2.0,sn:VA1001000000000400000001E73AB5038,swVersion:V1.03,vmsAddr:6,vmsPort:20010,totalSpace:250000, / 单位是MB QCS-VMS的消息例子: HTTP 200 OK。 JSON message:eventType:eventCode:1,subEvent:1,result:0,recordCfgParam:recordFlag:0,/ 0:所有都不录,1表示都录(不会出现2)recordTime:300,/secondrecordTypeList:1,4,8,16,32,streamCfgList:address:,port:8000,description:CCTV1,driver:igmp_drv,extraData:null,pollAnalysis:1, / 0:表示不分析,1:分析普通频道,2:分析VIP频道cfgId:10,recordStatus:0 / 0:不录制,1:录制,address:6,port:8001,description:CCTV2,driver:igmp_drv,extraData:null,pollAnalysis:0, /0 不分析,1:普通频道,2:vip频道cfgId:11,recordStatus:0 / 0:不录制,1:录制,alarmCfgParam:mosThreshold:1152,vstqThreshold:11520,codecThreshold:2,dfThreshold:200,mlrThreshold:10,alarmEnduringTime:120/second,basicCfgParam:keepaliveInterval:60,/secondcontentCfgParam:blackDurationThresh:1, / secondstaticDurationThresh:10, / secondblockDurationThresh:5, /secondchromaDurationThresh:2, /secondrgbDurationThresh:2, /secondlumiDurationThresh:2 /second说明:driver 取值rtsp_drv, igmp_drv, raw_drvextData在rtsp时,给出完整的URL,例如rtsp:/8:234/0000000000030200005971143. KEEPALIVE消息: VMS-QCS的消息例子::8080/QCS/keepaliveeventType:eventCode:2,subEvent:0,deviceId:name:hp1005,mac:00:00:00:00:00:00,manufactory:CERTUS,osVersion:2.6.18-194.32.1.el5PAE,productClass:VA2.0,sn:VA1001000000000400000001E73AB5038,swVersion:V1.03,vmsAddr:6,vmsPort:20010,totalSpace:250000, / 单位是MB,timestamp:2012-06-07 14:40:47,keepaliveList streamId srcIp:5, srcPort:12448, dstIp:28, dstPort:9016,extId cfgId:10,pidList pidNum:87, pmtId:0, pidType:0, / Video = 0, Audio = 1 nfyType:0 / Created = 0, Terminated = 1, pidNum:88, pmtId:0, pidType:1, nfyType:0 streamQuality mos:3.25,vstq:50.0codec:0,lossRate:0.02mdiDf:0.037,mdiMlr:0.0,mediaRate:5256054.0,interJitterMs:20meanInterJitterMs:24,avgBandwidth:15693422 , mos:3.25,vstq:50.0codec:0,lossRate:0.02mdiDf:0.037,mdiMlr:0.0,mediaRate:5256054.0,interJitterMs:20,meanInterJitterMs:23,avgBandwidth:15693422 , statsQualified: mosStatCount:7, /U32mosUnqualifiedCount:5, /U32dfStatCount:7, /U32dfUnqualifiedCount:0, /U32codecStatCount:7, /U32codecUnqualifiedCount:1, /U32mlrStatCount:7, /U32mlrUnqualifiedCount:7, /U32tsPktsCount:40845, /U32tsPktsLostCount:0 /U32 注明: streamQuality 每组中会出现多组数据,间隔可以如此计算keepalive周期/数组大小 QCS-VMS的消息例子 HTTP 200 OK。 JSON message: eventType : eventCode :2, subEvent:1,result:04. ALARM消息: VMS-QCS的消息例子: :8080/QCS/alarmeventType : eventCode :3, subEvent:0, deviceId:name:hp1005,mac:00:00:00:00:00:00,manufactory:CERTUS,osVersion:2.6.18-194.32.1.el5PAE,productClass:VA2.0,sn:VA1001000000000400000001E73AB5038,swVersion:V1.03,vmsAddr:6,vmsPort:20010,totalSpace:250000, / 单位是MB,alarmList: streamId srcIp:5, srcPort:12448, dstIp:28, dstPort:9016,extId cfgId:10,alarmInfo type:1, flag:true, / true is alarm, false is ok level:1, time:2011-05-26 05:32:32, recordFlag:true,/ 是否已录制视频字段true代表已录制,false代表没有录制,为冗余字段,USB组不对此字段做处理,通过recordFileName来判断是否录制。终端组依然维护该字段。(由于该版本的时间紧迫暂时不从接口中删除)。 recordFileName:test.ts, remainSpace:15000,/ 单位是MB alarmDescr: mos:3.5, vstq:35, codec:10 mdiDf:0.22, mdiMlr:30.1, lossRate:0.02, mediaRate:2300000.000000, descr: nIFramesRcvd: 200, nIFramesImpaired: 2, nPFramesRcvd: 6066, nPFramesImpaired: 25,nBFramesRcvd:8806, nBFramesImpaired: 5 QCS-VMS的消息例子: HTTP 200 OK。 JSON message:eventType : eventCode :2, subEvent:1,result:05. GetChannel消息VA中内容分析仪进程CA与VA主进程交互的 CA-VM的消息例子: 6:20010/VMS/polleventType: eventCode:4 subEvent:0, chlParam: isVip:false , contentParam: true说明 chlParam 和 contentParam的参数不要求同时都有。 VMCA的消息例子: HTTP 200 OK。 JSON message:eventType: eventCode:4, subEvent:1, result:0,streamList: description:CCTV1, address:6, port:8000 , description:CCTV2, address:6, port:8000,contentCfgParam:blackDurationThresh:1, / secondstaticDurationThresh:10, / secondblockDurationThresh:5, /secondchromaDurationThresh:2, /secondrgbDurationThresh:2, /secondlumiDurationThresh:2 /second6. content analysis alarm消息CA-VM的消息例子: 6:20010/VMS/polleventType: eventCode:5 subEvent:0, alarmList: alarmType:5, description:null , alarmType:2, description:null streamKey: address:6, port:8000,VMCA的消息例子: HTTP 200 OK。 JSON message:eventType: eventCode:5, subEvent:1,result: 07. Config消息: QCS-VMS的消息例子: 6:20010/VMS/polleventType: eventCode:6, subEvent:0, cfgList: addCfgStreamaddress:,port:8000,description:CCTV1,driver:igmp_drv,extraData:null,pollAnalysis:2,cfgId:10,recordStatus:0 / 0:不录制,1:录制,updateCfgStreamaddress:,port:8000,description:CCTV1,driver:igmp_drv,extraData:null,pollAnalysis:2,cfgId:10,recordStatus:0 / 0:不录制,1:录制,/ we are only allowed to change pollAnaysis, cfg_id,(recordStatus will be changed later) delCfgStreamaddress:,port:8000,cfgId:11,recordCfgParam:recordTime:300,recordFlag:1recordTypeList:1,4,8,16,32,recordChannelList: address:,port:8000,cfgId:13,recordStatus:0 / 0:不录制,1:录制 , address:,port:8000,cfgId:14,recordStatus:1 / 0:不录制,1:录制 ,alarmCfgParam:mosThreshold:1152,vstqThreshold:11520,codecThreshold:2,dfThreshold:200,mlrThreshold:10,alarmEnduringTime:120/second,basicCfgParam:keepaliveInterval:60,/secondcontentCfgParam:blackDurationThresh:1, / secondstaticDurationThresh:10, / secondblockDurationThresh:5, /secondchromaDurationThresh:2, /secondrgbDurationThresh:2, /secondlumiDurationThresh:2 /secondconfigName可自定义,举例如下:addCfgStream, delCfgStream,recordCfgParam,recordChannelListrecordCfgParam : 未实现可以任意组合,根据具体情况而实现。recordFlag:0,0: 表示当前保存的所有频道都不录制, 1: 表示有些频道要录制,有些频道不录制,具体参见recordList VMS-QCS的消息例子: HTTP 200 OK。 JSON message:eventType : eventCode :6, subEvent:1,result:0,cfgStreamResult:address:, port:8000,errCode:null, QCS-VMS的消息例子:动态配置全局变量1,视频录制开关 2,录制时间3,告警类型。当进行开启和关闭视频录制开关,修改录制时间,配置对哪几种告警类型进行录制 功能的时候值需要的配置如下:recordCfgParam:recordTime:300,recordFlag:1recordTypeList:1,4,8,16,32,里面不能包含streamCfgList。 QCS-VMS的消息例子: 单个频道配置,开启单个频道的录制或者关闭单个频道的录制功能进行开启或者关闭频道的录制开关的时候,一个频道一个频道下发给va,不需全局recordCfgParam,只下发录制或者不录制的频道在recordChannelList中,通过recordStatus来判断,录制与不录制。/ 0:不录制,1:录制recordChannelList: address:,port:8000,cfgId:13,recordStatus:0 / 0:不录制,1:录制 8. Query消息: QCS-VMS的消息例子: 6:20010/VMS/polleventType: eventCode:7 subEvent:0, streamId srcIp:5,srcPort:12448,dstIp:28,dstPort:9016,pidId / only for pid data pid:87,queryNameList: queryDataName1, queryDataName2,parameterList: monitorLastFor: 2若pid代表为视频流,queryDataName可取的选项有videoStreamDesc,videoStreamPktTrans,videoStreamQual,videoStreamScene,videoStreamFrame,videoStreamBw,videoStreamJitter,videoStreamInterval,pidQual若pid代表为音频流,queryDataName可取的选项有audioStreamDesc,audioStreamPktTrans,audioStreamQual,audioStreamBw,audioStreamInterval,pidQual若pid = 0xFFFF, queryDataName 可取的选项有streamTR101290P1,streamTR101290P2,pidQual,rtpTransParams红色的部分暂时不传若查询的为秒级监控pid = 0xFFFF, 或者不提供pidId这个对象,queryDataName 可取的选项有,但是必须提供monitorLastFor 参数,其后为需要向上传送的mdi数组个数(每秒一个)secondMonitor可以任意组合,根据具体情况而实现。 VMSQCS的消息例子: HTTP 200 OK。 JSON message:若pid代表为视频流,返回的例子具体的数据类型参考8:8191/svn/iptvproj/doc/Development/Components/VMS/reference/va数据汇总文档eventType: eventCode:7, subEvent:1, result:0,dataList: videoStreamDesc fStreamDescFlags: 0, /U32 idCODECType: 8199, /U16 strGOPStructure: IBBPBB, /char 40 nAvgGOPLength: 2399, /U16 nMaxGOPLength: 2399, /U16 nCurGOPLength: 2399, /U16 nAvgInterIFrameGap: 1934, /U16 nFrameWidth: 528, /U16nFrameHeight: 576, /U16 nFrameRate: 30000, /U16 bInterlaced: 0, /BOOL nSlicesPerIFrame: 36, /U16 nRefClockRateHz: 90000, /U32 eTransportProtos: 49 /U16 ,videoStreamPktTrans nPktsRcvd: 244647, /U32 nPktsCorrected:0, /U32 nPktsLost: 32, /U32 nPktsDiscarded: 0, /U32 nPktsOutOfSeq: 0, /U32 nPktsDuplicated: 0, /U32 nUncorrectedLossProp: 0, /U32 / TWOPOWER32 nCorrectedLossProp: 0, /U32 / TWOPOWER32 nDiscardProp: 0, /U32 / TWOPOWER32 nOutOfSeqProp: 0, /U32 / TWOPOWER32 nDuplicateProp: 0, /U32 / TWOPOWER32 nBurstCount: 2, /U16 nBurstLossRate: 0, /U32 / TWOPOWER32 nBurstLengthPkts: 43, /U32 nGapCount: 3, /U16 nGapLossRate: 0, /U32 / TWOPOWER32 nGapLengthPkts: 48770 /U32,videoStreamQual nMinAbsoluteMOS_V: 1.04296875, /U16 / TWOPOWER8 nAvgAbsoluteMOS_V: 3.8984375, /U16 / TWOPOWER8 nMaxAbsoluteMOS_V: 4.14453125, /U16 / TWOPOWER8 nInstAbsoluteMOS_V: 4.14453125, /U16 / TWOPOWER8 nPropBelowTholdAbsMOS_V: 0.1049, /U32 nMinRelativeMOS_V: 1.6328, /U16 / TWOPOWER8 nAvgRelativeMOS_V: 4.4883, /U16 / TWOPOWER8 nMaxRelativeMOS_V: 4.7344, /U16 / TWOPOWER8 nInstRelativeMOS_V: 4.734375, /U16 / TWOPOWER8 nPropBelowTholdRelMOS_V: 0.0723, /U32 / TWOPOWER32 nMinMOS_AV: 1.6718, /U16 / TWOPOWER8 nAvgMOS_AV: 3.625, /U16 / TWOPOWER8 nMaxMOS_AV: 3.9297, /U16 / TWOPOWER8 nInstMOS_AV: 3.8711, /U16 / TWOPOWER8 nPropBelowTholdMOS_AV: 0.1470, /U32 / TWOPOWER32 nVSTQ: 50, /S16 / TWOPOWER8 nEPSNR: 10432, /S16 nEPSNR_ATIS: 10901, /S16 nLossDeg: 0, /U8 nDiscardDeg: 0, /U8 nCODECQuantDeg: 1, /U8 nCODECBWRestrictDeg: 0, /U8 nFrameResolutionDeg: 1, /U8 nFrameRateDeg: 1, /U8 nGOPLengthDeg: 0, /U8 nAvailNetBWDeg: 0, /U8 nDelayDeg: 0, /U8 nAVSyncDeg: 0, /U8nRecencyDeg: 0 /U8,videoStreamScene fReserved: 0, /U32 nInstDetailLvl: 54, /U8 nInstMotionLvl: 18, /U8 nInstPanningLvl: 93, /U8 nStaticImage: 0.01199, /U32 / TWOPOWER32 nHighDetail: 0.3749, /U32 / TWOPOWER32 nLowDetail: 0.05789, /U32 / TWOPOWER32 nHighPanning: 0.5765, /U32 / TWOPOWER32 nLowPanning: 0, /U32 / TWOPOWER32 nLowMotion: 0 /U32 / TWOPOWER32,videoStreamFrame: nIFramesRcvd: 200, /U32 nIFramesImpaired: 2, /U32 nPropIFramesImpaired: 0.009994, /U32 / TWOPOWER32 nPFramesRcvd: 6066, /U32 nPFramesImpaired: 25, /U32 nPropPFramesImpaired: 0.0041, /U32 / TWOPOWER32 nBFramesRcvd:8806, /U32 nBFramesImpaired: 5, /U32 nPropBFramesImpaired: 0.00056, /U32 / TWOPOWER32 nSIFramesRcvd: 0, /U32 nSIFramesImpa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西公需科目“互联网”开放合作考试及答案
- 全国计算机等级考试二级模拟试题及答案
- 幼儿园教师资格证考题(含答案)
- 消防知识试题50题答案
- 康复护理学题库及答案康复护理学试题及答案
- 母婴护理考试题与参考答案
- 公民健康素养知识竞赛试题题库(含答案)
- 结构化面试的试题题目及答案
- 重难点解析人教版八年级物理上册第6章质量与密度-密度专题攻克试卷
- 绿色农业之营销导向
- 四川甘孜州甘孜县招聘警务辅助人员笔试真题2024
- 2024年人教PEP版小学三年级下册英语教学计划及进度表(三年级起点)
- 牙周病学课件
- 大型体育馆满堂外脚手架施工方案
- 2025年广东佛山职业病诊断(物理因素所致职业病)模拟题库及答案
- 西宁市城中区面向社会公开招考社区工作者及储备人员的考试参考试题及答案解析
- 2025-2030中国燃气管道第三方施工破坏防控体系构建研究报告
- 2025年(完整版)全国高考一卷数学试题及答案
- 数据库版本管理手册
- 2025年交管12123版学法减分全部试题及答案解析
- 建设工程造价鉴定申请书
评论
0/150
提交评论