Hik ISAPI
Hik ISAPI
Developer Guide
Intelligent Security API (Metadata) Developer Guide
Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND “WITH ALL FAULTS AND ERRORS”. OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.
i
Intelligent Security API (Metadata) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 Display Metadata on Video ........................................................................................ 3
Chapter 3 Subscribe Metadata by Type ..................................................................................... 10
Appendix A. Request URIs ........................................................................................................ 12
A.1 /ISAPI/System/capabilities ................................................................................................... 12
A.2 /ISAPI/Streaming/channels/<ID>/metadata/capabilities .................................................... 12
A.3 /ISAPI/Streaming/channels/<ID>/metadata ........................................................................ 12
A.4 /ISAPI/Streaming/channels/<ID>/metadata/subscribeType?format=json .......................... 13
A.5 /ISAPI/Streaming/channels/<ID>/Metadata/<type> ........................................................... 14
A.6 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID> ......................................................... 14
Appendix B. Request and Response Messages .......................................................................... 17
B.1 JSON_Metadata ................................................................................................................... 17
B.2 JSON_Metadata_HeatMap .................................................................................................. 18
B.3 JSON_Metadata_PeopleCounting ........................................................................................ 19
B.4 JSON_Metadata_PersonalTracking ...................................................................................... 20
B.5 JSON_ResponseStatus ......................................................................................................... 22
B.6 JSON_RTSPMetadataURI ..................................................................................................... 22
B.7 JSON_SubscribeType ............................................................................................................ 23
B.8 XML_Cap_MetadataCfg ....................................................................................................... 23
B.9 XML_DeviceCap ................................................................................................................... 23
B.10 XML_Metadata_ANPR ....................................................................................................... 33
B.11 XML_Metadata_BehaviorAnalysis ..................................................................................... 35
B.12 XML_Metadata_FaceCapture ............................................................................................ 39
B.13 XML_Metadata_QueueManagement ................................................................................ 42
ii
Intelligent Security API (Metadata) Developer Guide
iii
Intelligent Security API (Metadata) Developer Guide
Chapter 1 Overview
1.1 Introduction
Metadata is the data that describes other data. In the video monitoring filed, metadata usually
contains intelligent structured information (e.g., real-time temperature measurement, fire source
detection, ship detection, behavior analysis, ANPR, queue management, and face capture) which
can help users to understand the videos.
1
Intelligent Security API (Metadata) Developer Guide
2
Intelligent Security API (Metadata) Developer Guide
3
Intelligent Security API (Metadata) Developer Guide
Steps
4
Intelligent Security API (Metadata) Developer Guide
Note
RTSP is an international protocol, so for its definition, search for the related manuals or
specifications in the library or on the network for reference.
1. Optional: Call /ISAPI/System/capabilities by GET method to get the device capability for
checking whether the device supports metadata.
The device capability is returned in the message XML_DeviceCap .
If the node <isSupportMetadata> is returned in the message, it indicates that the device
supports metadata, and you can perform the following steps.
Otherwise, it indicates that metadata is not supported by device, please end this task.
2. Optional: Call /ISAPI/Streaming/channels/<ID>/metadata/capabilities by GET method to get
the metadata capability for getting the supported intelligent events and message formats.
3. Call /ISAPI/Streaming/channels/<ID>/metadata by PUT method to enable intelligent event and
set message format.
Note
You can also call /ISAPI/Streaming/channels/<ID>/Metadata/<type> by PUT method to
configure parameters for a specific metadata type.
4. Call rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID> by DESCRIBE RTSP method to request
for getting stream for live view.
Example
Sample URL for getting stream for live view by RTSP method: DESCRIBE rtsp://
10.10.36.212:554/ISAPI/Streaming/channels/101 RTSP/1.0
Stream information (see the example below) is returned by device if succeeded.
DESCRIBE rtsp://10.10.36.212:554/ISAPI/Streaming/channels/101 RTSP/1.0
CSeq:0
Accept:application/sdp
Authorization:
User-Agent:NKPlayer-VSPlayer1.0
5
Intelligent Security API (Metadata) Developer Guide
RTSP/1.0 200 OK
CSeq: 0
Content-Type: application/sdp
Content-Length: 737
v=0
o=- 1513571850040093 1513571850040093 IN IP4 10.10.36.212
s=Media Presentation
e=NONE
b=AS:5100
t=0 0
a=control:*
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:1920,1080
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029; packetization-mode=1;
sprop-parameter-sets=Z00AKp2oHgCJ+WbgICAoAAADAAgAAAMBlCA=,aO48gA==
m=audio 0 RTP/AVP 0
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=2
a=rtpmap:0 PCMU/8000
m=application 0 RTP/AVP 107
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=3
a=rtpmap:107 isapi.metadata/90000
a=Media_header:MEDIAINFO=494D4B48010200000400000110710110401F000000FA00000000000000000000000
0000000000000;
a=appversion:1.0
Note
The "a=rtpmap:107 isapi.metadata/90000" in the stream information indicates that the stream
contains metadata information, and the "trackID=3" refers to the metadata ID which is used to
get the detailed metadata information in step 7.
5. Parse the obtained stream data to judge whether the stream contains the metadata information
and get the trackID of metadata if contained.
6. Call rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID> by SETUP RTSP method to request
for getting detailed metadata information.
6
Intelligent Security API (Metadata) Developer Guide
Example
An example for getting detailed metadata information by SETUP method is shown below for
reference.
SETUP rtsp://10.10.36.212:554/ISAPI/Streaming/channels/101/trackID=3
RTSP/1.0
Seq:3
Authorization:Digest username="admin", realm="IP Camera(51289)",
nonce="9fe43f1322976c0aa218b0f23f554b44",
uri="rtsp://10.10.36.212:554/ISAPI/Streaming/channels/101",
response="46b39a563fd9977eff83067adc4e587b"
Session: 408703626
Transport: RTP/AVP/TCP;unicast;
User-Agent:NKPlayer-VSPlayer1.0
Note
Metadata information can be sent with the stream, or alone in the response of RTSP request
(must be packaged by RTP), see the format and structure of metadata message to be uploaded
in XML_Video_Metadata or JSON_Metadata .
7. Call rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID> by PLAY RTSP method to start the live
view.
Example
Sample URL for starting live view by RTSP method: PLAY rtsp://10.10.36.160:554/ISAPI/
Streaming/channels/102 RTSP/1.0. And then device starts uploading the RTP packet which
contains stream data and metadata (see the message example below).
PLAY rtsp://10.10.36.160:554/ISAPI/Streaming/channels/102 RTSP/1.0
CSeq:4
Authorization:Digest username="admin", realm="IP Camera(51289)",
nonce="9fe43f1322976c0aa218b0f23f554b44",
uri="rtsp://10.10.36.160:554/ISAPI/Streaming/channels/102",
response="611cc58b1b42b8df909b57b737a7ad3a"
Session: 408703626
Range:npt=0.000000-
Scale:1.000
User-Agent:NKPlayer-VSPlayer1.0
RTSP/1.0 200 OK
CSeq: 4
Session: 408703626
RTP-Info:
url=trackID=1;seq=24874,url=trackID=2;seq=42360,url=trackID=3;seq=0
Date: Mon, Dec 18 2017 04:37:31 GMT
7
Intelligent Security API (Metadata) Developer Guide
8
Intelligent Security API (Metadata) Developer Guide
User-Agent:NKPlayer-VSPlayer1.0
9
Intelligent Security API (Metadata) Developer Guide
10
Intelligent Security API (Metadata) Developer Guide
11
Intelligent Security API (Metadata) Developer Guide
A.1 /ISAPI/System/capabilities
Get device capability.
A.2 /ISAPI/Streaming/channels/<ID>/metadata/capabilities
Get metadata capability.
Remarks
The <ID> in the URI is the channel ID.
A.3 /ISAPI/Streaming/channels/<ID>/metadata
Get or set metadata parameters.
12
Intelligent Security API (Metadata) Developer Guide
Remarks
The <ID> in the URI is the channel ID.
A.4 /ISAPI/Streaming/channels/<ID>/metadata/subscribeType?
format=json
Specify metadata type to be subscribed and get the corresponding metadata details URI.
13
Intelligent Security API (Metadata) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.5 /ISAPI/Streaming/channels/<ID>/Metadata/<type>
Get or set parameters of a specific metadata type.
Remarks
• The <ID> in the request URI refers to the channel ID.
• The <type> in the request URI refers to the metadata type, such as "thermometry",
"fireDetection", "shipsDetection", "behaviorAnalysis", "ANPR", "personQueue", and "faceSnap".
A.6 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Get basic parameter or session information for live view, or start and stop live view.
14
Intelligent Security API (Metadata) Developer Guide
Query None.
Request None.
Response None.
Table A-9 SETUP rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method SETUP
Description Get session information for live view.
Query None.
Request None.
Response None.
Table A-10 PLAY rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method PLAY
Description Start live view.
Query None.
Request None.
Response None.
Table A-11 TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method TEARDOW
Description Stop live view.
Query None.
Request None.
Response None.
Remarks
The <ID> in the URL is defined as (channel No.)*100+(stream type value).
channel No.
For analog channel, the No. starts from 1, and for digital channel, the No. starts from the last
analog channel No.
E.g., if the device has 16 analog channels and 16 digital channels, the analog channel No. is
between 1 and 16, and the digital channel No. is between 17 and 32.
stream type value
The stream type values contain 1, 2, and 3. 1-main stream, 2-sub-stream, 3-third stream.
15
Intelligent Security API (Metadata) Developer Guide
E.g., if ID is 101, it indicates the main stream of channel No.1; if ID is 102, it indicates the sub-
stream of channel No. 2; if ID is 1601, it indicates the main stream of channel 16;...
16
Intelligent Security API (Metadata) Developer Guide
B.1 JSON_Metadata
JSON message about general metadata
{
"Metadata":{
"type":"",
/*required, string, information type to be uploaded: "ruleTarget"-upload rules*/
"subType":"",
/*optional, string, event type: "heatmap"-heat map (crowd trend analysis), "framesPeopleCounting"-regional people
counting, "PeopleCounting"-people counting*/
"time":"",
/*required, string, time in ISO 8601 time format, e.g., "2017-01-01T00:00:00+08:00"*/
"DevInfo":{
/*optional, device information, it is used to distinguish devices across domains and multicasting*/
"ipAddress":"",
"portNo":"",
"macAddress":"",
"channel":""
},
"TargetDetection":{
/*optional, detected target information*/
"TargetList":[{
/*required, target information list*/
"ruleID":"",
/*optional, integer, detection rule ID*/
"RegionList":[{
/*optional, target position*/
"Point":[{
"x":"",
"y":""
}]
}]
}],
"PcitureList":[{
/*optional, picture list*/
"dataType":{ },
"data":""
}]
},
"Situation":{
/*optional*/
"personCount":
/*int, number of people, this field is valid when subType is "crowdSituationAnalysis" and "framesPeopleCounting"*/
}
}
}
17
Intelligent Security API (Metadata) Developer Guide
Remarks
For different detection types, the metadata details are different, see the table below.
Detection Type Metadata Details
Heat Map (Crowd Trend Analysis) JSON_Metadata_HeatMap
People Counting (includes Regional People JSON_Metadata_PeopleCounting
Counting)
Personal Tracking JSON_Metadata_PersonalTracking
B.2 JSON_Metadata_HeatMap
JSON message about heat map (or crowd trend analysis) metadata
{
"Metadata":{
"type":"ruleTarget",
"subType":"heatmap",
"time":"2017-01-01T00:00:00+08:00",
"DevInfo":{
"ipAddress":192.168.0.64,
"portNo":"554",
"macAddress":"28:57:be:ee:d1:5a",
"channel":"1"
},
"TargetDetection":{
"TargetList":[{
"ruleID":"1",
"RegionList":[{
"Point":[{
"x":"0",
"y":"0"
},
{
"x":"600",
"y":"0"
},
{
"x":"600",
"y":"600"
},
{
"x":"0",
"y":"600"
}]
}]
}],
"PcitureList":[{
18
Intelligent Security API (Metadata) Developer Guide
"dataType":{ },
"data":"xxxxxxxxxxx"
}]
},
"Situation":{
"personCount":0
}
}
}
dataType
Optional, string, picture data type: "url", "base64".
data
Optional, string, picture data.
personCount
Optional, int, number of people.
B.3 JSON_Metadata_PeopleCounting
JSON message about people counting metadata
personCount
Optional, int, number of people in the region.
19
Intelligent Security API (Metadata) Developer Guide
"subType":"PeopleCounting",
"time":"2017-01-01T00:00:00+08:00",
"DevInfo":{
"ipAddress":192.168.0.64,
"portNo":"554",
"macAddress":"28:57:be:ee:d1:5a",
"channel":"1"
},
"Situation":{
"enterRegionPeopleNum":0,
"leaveRegionPeopleNum":0
}
}
}
enterRegionPeopleNum
Optional, int, number of people entering the region. This field is required when subType is
"PeopleCounting".
leaveRegionPeopleNum
Optional, int, number of people leaving the region. This field is required when subType is
"PeopleCounting".
B.4 JSON_Metadata_PersonalTracking
JSON message about personal tracking metadata
{
"MetaData":{
"type":"ruleTarget",
"subType":"personalTrack",
"time":"2017-01-01T00:00:00+08:00",
"DevInfo":{
"ipAddress":192.168.0.64,
"portNo":"554",
"macAddress":"28:57:be:ee:d1:5a",
"channel":"1"
},
"CameraPoint": [{
"objId": "12498",
/*required, string, tracking target ID, which can contain up to 32 characters*/
"traComplete": false,
/*required, boolean, whether the tracking target has disappeared: false, true*/
"isvalid": 1,
/*required, int, whether target is valid: 1-yes, 0-no*/
"GesturePolygon": {
/*required, target features*/
"id": "12498",
/*optional, string, gesture ID, this node is valid only when there exist gesture features*/
"JoinMsg": [{
20
Intelligent Security API (Metadata) Developer Guide
"gestureType": 0,
/*required, int, feature category: 0-left wrist, 1-left elbow, 2-left shoulder, 3-head, 4-right shoulder, 5-right elbow, 6-
right wrist*/
"gestureScore": 0.572535,
/*required, float, feature score, value range: [0,1.000000]*/
"gestureValid": 1,
/*required, int, whether the gesture is valid: 1-yes, 0-no*/
"x": 3050.360351,
/*float, X-coordinate (space coordinates), which is accurate to 6 decimal places*/
"y": 6995.723632,
/*float, Y-coordinate (space coordinates), which is accurate to 6 decimal places*/
"z": 1082.0,
/*float, Z-coordinate (space coordinates), which is accurate to 6 decimal places*/
"x2d": 0.671052,
/*float, normalized X-coordinate (plane coordinates), which is accurate to 6 decimal places, value range: [0,1]*/
"y2d": 0.53125
/*float, normalized Y-coordinate (plane coordinates), which is accurate to 6 decimal places, value range: [0,1]*/
}]
},
"HeadPolygon": {
/*head and shoulder frame of target, target coordinates, and target pattern information, the values are accurate to 6
decimal places*/
"Rect": {
/*head and shoulder frame of target*/
"x": 0.660156,
"y": 0.388888,
"width": 0.089843,
"height": 0.125
},
"cct": {
/*target coordinates*/
"x": 3057.293212,
/*float, X-coordinate (space coordinates)*/
"y": 7205.725585,
/*float, Y-coordinate (space coordinates)*/
"z": 0.0
/*float, Z-coordinate (space coordinates)*/
},
"HeadModel": {
"modelNum": 1,
/*required, int, number of feature vectors on head and shoulder, it can be set to 0 if there is no vector*/
"Data":[{
"poseType": 7,
/*required, int, target direction or posture (vertical angle of view): 1-in image medium, 2-four image corners forward,
3-four image corners backward, 4-four image corners leftward, 5-four image corners rightward, 6-image center
forward, 7-image center backward, 8-image center leftward, 9-image center rightward, 0-unknown*/
"feaLen": 134,
/*required, int, length of feature vector*/
"feaData":""
/*required, string, feature data*/
}]
}
21
Intelligent Security API (Metadata) Developer Guide
},
"SuspList": {
/*tracking exception tag*/
"suspNum": 1,
/*required, int, number of abnormal patterns, it can be set to 0 if all patterns are normal*/
"Data":[{
"suspID": 5,
/*required, int, abnormal pattern ID*/
"timeStamp":1576657411095,
/*required, int, pattern exception occurred time*/
"confidence":0.567
/*required, float, exception confidence*/
}]
}
}]
}
}
B.5 JSON_ResponseStatus
JSON message about response status
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode": ,
/*required, int, status code*/
"statusString":"",
/*required, string, status description*/
"subStatusCode":"",
/*required, string, sub status code*/
"errorCode": ,
/*optional, int, error code, which corresponds to subStatusCode, this field is required when statusCode is not 1. The
returned value is the transformed decimal number*/
"errorMsg":"",
/*optional, string, error details, this field is required when statusCode is not 1*/
}
Note
See Response Codes of Text Protocol for details about the status codes, sub status codes, error
codes, and error descriptions.
B.6 JSON_RTSPMetadataURI
JSON message about metadata details URI (over RTSP)
{
"rtspURI":""
22
Intelligent Security API (Metadata) Developer Guide
/*required, string, metadata details URI over RTSP, it can contain up to 128 characters*/
}
B.7 JSON_SubscribeType
JSON message about metadata types to be subscribed
{
"type":[""]
/*optional, array of string, type list of metadata to be subscribed: "thermometry"-real-time temperature
measurement, "fireDetection"-fire source detection, "shipsDetection"-ship detection, "behaviorAnalysis"-behavior
analysis, "ANPR", "personQueue"-queue management, "faceSnap"-face capture, "radarDetection"-radar detection,
"personalTrack"-personal tracking; it can contain multiple types, and each type string can contain up to 64 characters*/
}
B.8 XML_Cap_MetadataCfg
XML message about metadata configuration capability
<MetadataCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MetadataList size=""><!--required-->
<Metadata><!--required-->
<type opt="thermometry, fireDetection, shipsDetection, behaviorAnalysis, ANPR, personQueue, faceSnap,
radarDetection, personalTrack">
<!--required, xs: string, metadata type: "thermometry"-real-time temperature measurement, "fireDetection"-fire
source detection, "shipsDetection"-ship detection, "behaviorAnalysis"-behavior analysis, "ANPR", "personQueue"-
queue management, "faceSnap"-face capture, "radarDetection"-radar detection, "personalTrack"-personal tracking-->
</type>
<enable><!--required, xs:boolean: true-upload, false-not upload--></enable>
</Metadata>
</MetadataList>
<uploadDataFormat opt="xml,json">
<!--optional,xs:string, If this node does not exist, it indicates that only XML format message is supported-->
</uploadDataFormat>
<isSupportSubscribeType><!--required, xs: boolean, whether the device supports subscribing metadata by type (by
default, it is subscribed by channel)--></isSupportSubscribeType>
</MetadataCfg>
B.9 XML_DeviceCap
XML message about device capability
<DeviceCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SysCap><!--optional-->
<isSupportDst><!--optional, xs: boolean, whether it supports daylight saving time--></isSupportDst>
<NetworkCap/><!--optional, xs: boolean, network capability-->
<IOCap/><!--optional, IO capability-->
23
Intelligent Security API (Metadata) Developer Guide
24
Intelligent Security API (Metadata) Developer Guide
</isSupportPostUpdateFirmware>
<isSupportPostConfigData>
<!--optional, xs:boolean,"true,false", whether it supports importing or exporting the configuration file-->
</isSupportPostConfigData>
<isSupportUserLock>
<!--optional, xs:boolean,"true,false", whether it supports locking user-->
</isSupportUserLock>
<isSupportModuleLock><!--optional, xs:boolean, whether it supports locking the module: "true,false"--></
isSupportModuleLock>
<isSupportSoundCfg><!--optional, xs:boolean--></isSupportSoundCfg>
<isSupportMetadata>
<!--optional, xs:boolean, if it is supported, return "true", otherwise, this node will not be returned-->
</isSupportMetadata>
<isSupportShutdown><!--optional, xs:boolean, whether it supports shutdown configuration--></
isSupportShutdown>
<supportSmartOverlapChannles opt="1"/><!--optional, xs:boolean, whether it supports stream configuration of
smart events. If this function is supported, this node and the corresponding channel ID will be returned; otherwise,
this node will not be returned-->
<isSupportConsumptionMode><!--optional, xs:boolean, whether it supports switching power consumption
mode:true (yes), this node is not returned (no). Related URI: /ISAPI/System/consumptionMode/capabilities?
format=json--></isSupportConsumptionMode>
<isSupportManualPowerConsumption><!--optional, xs:boolean, whether it supports control the power
consumption mode manually: true (yes), this node is not returned (no)--></isSupportManualPowerConsumption>
</SysCap>
<voicetalkNums><!--optional, xs:integer, the number of two-way audio channels--></voicetalkNums>
<isSupportSnapshot><!--optional, xs:boolean, whether it supports capture: "true, false"--></isSupportSnapshot>
<SecurityCap/><!--optional, security capability-->
<EventCap/><!--optional, event capability-->
<ITCCap><!--optional--></ITCCap>
<ImageCap/><!--optional, image capability-->
<RacmCap/><!--optional, storage capability-->
<PTZCtrlCap>
<isSupportPatrols><!--optional, xs:boolean--></isSupportPatrols>
</PTZCtrlCap>
<SmartCap/><!--optional, intelligent capability-->
<isSupportEhome><!--optional, xs:boolean--></isSupportEhome>
<isSupportStreamingEncrypt><!--optional, xs:boolean--></isSupportStreamingEncrypt>
<TestCap>
<isSupportEmailTest><!--optional, xs:boolean--></isSupportEmailTest>
</TestCap>
<ThermalCap/><!--optional, temperature measurement capability-->
<WLAlarmCap/><!--optional, wireless alarm capability-->
<SecurityCPCapabilities/><!--optional, security control panel capability-->
<isSupportGIS>
<!--optional, xs:boolean, whether it supports GIS capability-->
</isSupportGIS>
<isSupportCompass>
<!--optional, xs:boolean-->
</isSupportCompass>
<isSupportRoadInfoOverlays>
<!--optional, xs:boolean-->
</isSupportRoadInfoOverlays>
25
Intelligent Security API (Metadata) Developer Guide
<isSupportFaceCaptureStatistics>
<!--optional, xs:boolean-->
</isSupportFaceCaptureStatistics>
<isSupportExternalDevice>
<!--optional, xs:boolean-->
</isSupportExternalDevice>
<isSupportElectronicsEnlarge>
<!--optional, xs:boolean, whether it supports digital zoom-->
</isSupportElectronicsEnlarge>
<isSupportRemoveStorage>
<!--optional, xs:boolean-->
</isSupportRemoveStorage>
<isSupportCloud>
<!--optional, xs:boolean-->
</isSupportCloud>
<isSupportRecordHost>
<!--optional, xs:boolean-->
</isSupportRecordHost>
<isSupportEagleEye>
<!--optional, xs:boolean, whether it supports PanoVu series camera-->
</isSupportEagleEye>
<isSupportPanorama>
<!--optional, xs:boolean, whether it supports panorama-->
</isSupportPanorama>
<isSupportFirmwareVersionInfo>
<!--optional, xs:boolean, whether it supports displaying firmware version information-->
</isSupportFirmwareVersionInfo>
<isSupportExternalWirelessServer>
<!--optional, xs: boolean-->
</isSupportExternalWirelessServer>
<isSupportSetupCalibration>
<!--optional, xs:boolean, whether it supports setting calibration-->
</isSupportSetupCalibration>
<isSupportGetmutexFuncErrMsg>
<!--optional, xs:boolean, whether it supports getting mutex information-->
</isSupportGetmutexFuncErrMsg>
<isSupportTokenAuthenticate><!--optional, xs:boolean--></isSupportTokenAuthenticate>
<isSupportStreamDualVCA><!--optional, xs:boolean--></isSupportStreamDualVCA>
<isSupportlaserSpotManual>
<!--optional, boolean, whether it supports laser spot configuration-->
</isSupportlaserSpotManual>
<isSupportRTMP><!--optional, xs:boolean--></isSupportRTMP>
<isSupportTraffic><!--optional, xs:boolean--></isSupportTraffic>
<isSupportLaserSpotAdjustment>
<!--optional, boolean, whether it supports adjusting laser spot size-->
</isSupportLaserSpotAdjustment>
<VideoIntercomCap/><!--optional, video intercom capability-->
<isSupportSafetyCabin>
<!--optional, xs:boolean-->
</isSupportSafetyCabin>
<isSupportPEA>
<!--optional, xs:boolean, whether it supports one-touch security control panel capability-->
26
Intelligent Security API (Metadata) Developer Guide
</isSupportPEA>
<isSupportCurrentLock>
<!--optional, xs:boolean, whether it supports locking current configuration-->
</isSupportCurrentLock>
<isSupportGuardAgainstTheft>
<!--optional, xs:boolean, whether it supports device anti-theft configuration-->
</isSupportGuardAgainstTheft>
<isSupportPicInfoOverlap>
<!--optional, xs:boolean, whether it supports picture information overlay-->
</isSupportPicInfoOverlap>
<isSupportPlay>
<!--optional, xs: boolean, whether it supports live view: "true,false"-->
</isSupportPlay>
<isSupportPlayback>
<!--optional, xs: boolean, whether it supports playback: "true,false"-->
</isSupportPlayback>
<UHFRFIDReader>
<!--optional, supported capability of UHF RFID card reader-->
<isSupportBasicInformation>
<!--optional, xs:boolean, whether it supports basic parameters of UHF RFID card reader-->
</isSupportBasicInformation>
<isSupportHardDiskStorageTest>
<!--optional, xs:boolean, whether it supports hard disk storage test of UHF RFID card reader-->
</isSupportHardDiskStorageTest>
</UHFRFIDReader>
<isSupportIntelligentStructureAnalysis>
<!--optional, xs:boolean, whether it supports structured VCA-->
</isSupportIntelligentStructureAnalysis>
<isSupportIntelligentAnalysisEngines>
<!--optional, xs:boolean, whether it supports VCA engine configuration-->
</isSupportIntelligentAnalysisEngines>
<PreviewDisplayNum>
<!--optional, xs:integer, the number of live view windows, which is the number of simultaneous live view windows
controlled by the device. Limited by the performance of DeepinMind series network video recorder, currently only live
view of a network camera is supported, and playback is not supported-->
</PreviewDisplayNum>
<isSupportBoard opt="true,false">
<!--optional, xs:boolean, whether it supports protocol related to sub-board-->
</isSupportBoard>
<ResourceSwitch>
<workMode opt="4KPreview,educationRecord">
<!--req, xs:string, device working mode:"4KPreview"-4K live view mode, "educationRecord"-education recording
mode-->
</workMode>
</ResourceSwitch>
<isSupportCustomStream><!--optional, xs:boolean--></isSupportCustomStream>
<isSupportTriggerCapCheck>
<!--optional, xs:boolean, whether it supports verifying capability of alarm linkage actions-->
</isSupportTriggerCapCheck>
<isSupportActiveMulticast>
<!--optional, xs: boolean, whether it supports active multicast-->
</isSupportActiveMulticast>
27
Intelligent Security API (Metadata) Developer Guide
<isSupportChannelEventCap>
<!--optional, xs:boolean, whether it supports getting event capability by channel-->
</isSupportChannelEventCap>
<isSupportPictureServer>
<!-- opt, xs:boolean, whether it supports picture storage server-->
</isSupportPictureServer>
<isSupportVideoCompositeAlarm>
<!--optional, xs:boolean, whether it supports video double check alarm-->
</isSupportVideoCompositeAlarm>
<isSupportSensorCalibrating>
<!--optional, xs:boolean, whether it supports double sensor calibration-->
</isSupportSensorCalibrating>
<isSupportChannelEventListCap>
<!--optional, xs:boolean, whether it supports getting event capability of all channels-->
</isSupportChannelEventListCap>
<VCAResourceChannelsCap>
<!--optional, whether it supports independently switching to another VCA resource by channel-->
<ChannelsList>
<channelsID>
<!--req, xs:integer, channel No. supported by the device-->
</channelsID>
</ChannelsList>
</VCAResourceChannelsCap>
<SensorCap/><!--optional, intelligent cabinet capability-->
<isSupportSecurityCP/>
<!--optional, xs:boolean, whether it supports the applications of security control panel: "true, false"-->
</isSupportSecurityCP>
<isSupportClientProxyWEB>
<!--optional, xs:boolean, whether it supports the function that the client proxy passes through the remote web
configuration: "true"-->
</isSupportClientProxyWEB>
<WEBLocation>
<!--optional, string type, web page location: "local"-local device, "remote"-remote location. If this node is not
returned, the web page will be in the local device by default-->
</WEBLocation>
<isSupportTime/>
<!--optional, xs:boolean, "true, false", whether it supports time configuration-->
</isSupportTime>
<isSupportTimeZone/>
<!--optional, xs:boolean, "true, false", whether it supports daylight saving time (DST) configuration-->
</isSupportTimeZone>
<isSupportMixedTargetDetection>
<!--optional, xs:boolean, "true, false", whether it supports multi-target-type detection-->
</isSupportMixedTargetDetection>
<isSupportFaceContrastMode>
<!--optional, xs:boolean, whether it supports face picture comparison mode-->
</isSupportFaceContrastMode>
<isSupportPictureCaptureComparision>
<!--optional, xs:boolean, whether it supports face picture N:1 comparison between face pictures captured by the
camera and imported face pictures-->
</isSupportPictureCaptureComparision>
<isSupportGPSCalibratation>
28
Intelligent Security API (Metadata) Developer Guide
29
Intelligent Security API (Metadata) Developer Guide
<TFSEventSupport
opt="illegalParking ,wrongDirection,crossLane,laneChange,vehicleExist,turnRound,parallelParking,notKeepDistance,not
SlowZebraCrossing,overtakeRightSide,lowSpeed,dragRacing,changeLaneContinuously,SSharpDriving,largeVehicleOccup
yLine,jamCrossLine">
<!--optional, xs:string, supported enforcement event type: "illegalParking"-illegal parking, "wrongDirection"-wrong-
way driving, "crossLane"-driving on the lane line, "laneChange"-illegal lane change, "vehicleExist"-motor vehicle on
non-motor vehicle lane, "turnRound"-illegal U-turn, "parallelParking"-parallel parking, "notKeepDistance"-not keeping
vehicle distance, "notSlowZebraCrossing"-not slowing down at zebra corssing, "overtakeRightSide"-overtaking on the
right, "lowSpeed"-driving in low speed, "dragRacing"-street racing, "changeLaneContinuously"-continuous lane
change, "SSharpDriving"-slalom driving, "largeVehicleOccupyLine"-lane occupation by large-sized vehicle,
"jamCrossLine"-queue jumping-->
</TFSEventSupport>
<isVehicleStatisticsSupport>
<!--optional, xs: boolean, whether it supports setting parameters for traffic data collection-->
</isVehicleStatisticsSupport>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<supportRemoteCtrl opt="up,down,left,right,enter,menu,num,power,esc,edit,F1,.prev,rec,play,stop,notSupport"/><!--
whether it supports remote control-->
<isSptDiagnosis>
<!--optional, xs:boolean, whether it supports device diagnosis: "true", "false"-->
</isSptDiagnosis>
<isSptSerialLogCfg>
<!--optional, xs:boolean, whether it supports configuring serial port log redirection: "true", "false"-->
</isSptSerialLogCfg>
<isSptFileExport>
<!--optional, xs:boolean, whether it supports exporting files from the device: "true", "false"-->
</isSptFileExport>
<isSptCertificationStandard>
<!--optional, xs:boolean, whether it supports configuring authentication standard for security control panel: "true",
"false"-->
</isSptCertificationStandard>
<isSptKeypadLock>
<!--optional, xs:boolean, whether it supports locking keypad: "true", "false"-->
</isSptKeypadLock>
<MixedTargetDetection><!--optional, whether the device supports recognizing specific target among mixed targets-->
<isSupportFaceRecognition><!--optional, xs:boolean, whether it supports face recognition--></
isSupportFaceRecognition>
<isSupportHumanRecognition><!--optional, xs:boolean, whether it supports human body recognition--></
isSupportHumanRecognition>
<isSupportVehicleRecognition><!--optional, xs:boolean, whether it supports vehicle recognition--></
isSupportVehicleRecognition>
</MixedTargetDetection>
<isSupportDiscoveryMode><!--optional, xs:boolean--></isSupportDiscoveryMode>
<streamEncryptionType>
<!--dep, xs:string, stream encryption type: "RTP/TLS", "SRTP/UDP", "SRTP/MULTICAST". This node is valid when
<isSupportEncryption> is "true", and the device can support one or more stream encryption types-->
</streamEncryptionType>
<isSupportLms><!--optional, xs:boolean, whether it supports laser--></isSupportLms>
<isSupportLCDScreen><!--optional, xs:boolean, whether it supports LCD screen--></isSupportLCDScreen>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth--></isSupportBluetooth>
30
Intelligent Security API (Metadata) Developer Guide
<isSupportAcsUpdate>
<!--optional, whether it supports upgrading slave access control devices or peripheral modules: "true"-yes, this
node is not returned-no-->
</isSupportAcsUpdate>
<isSupportAccessControlCap>
<!--optional, whether it supports access control capability: "true"-yes, this node is not returned-no-->
</isSupportAccessControlCap>
<isSupportIDCardInfoEvent><!--optional, whether it supports ID card swiping event: "true"-yes. This node will not be
returned if this function is not supported--></isSupportIDCardInfoEvent>
<OpenPlatformCap><!--optional, embedded open platform capability, refer to the message XML_OpenPlatformCap
for details-->
<isSupportInstallationAngleCalibration>
<!--optional, xs:boolean, whether it supports installation angle calibration-->
</isSupportInstallationAngleCalibration>
<isSupportZeroBiasCalibration>
<!--optional, xs:boolean, whether it supports zero bias calibration-->
</isSupportZeroBiasCalibration>
<isSupportDevStatus><!--optional, xs:boolean, whether device supports getting device status--></
isSupportDevStatus>
<isSupportRadar><!--optional, xs:boolean, whether it supports the security radar--></isSupportRadar>
<isSupportRadarChannels><!--optional, xs:boolean, whether it supports getting radar channels--></
isSupportRadarChannels>
<radarIPDForm><!--optional, xs:string, radar form: "single"-single radar, "double_diagonal"-two radars forming an
180° diagonal, "double_vertical"-two radars forming a 90° vertical angle--></radarIPDForm>
<isSupportRadarFieldDetection><!--optional, xs:boolean, whether it supports intrusion detection (radar)--></
isSupportRadarFieldDetection>
<isSupportRadarLineDetection><!--optional, xs:boolean, whether it supports line crossing detection (radar)--></
isSupportRadarLineDetection>
<mixedTargetDetectionWebNoDisplay><!--optional, xs:boolean, whether to enable not displaying multi-target-type
recognition--></mixedTargetDetectionWebNoDisplay>
<SHMCap><!--opt-->
<isSupportHighHDTemperature><!--optional, xs:boolean, whether it supports HDD high temperature detection--></
isSupportHighHDTemperature>
<isSupportLowHDTemperature><!--optional, xs:boolean, whether it supports HDD low temperature detection--></
isSupportLowHDTemperature>
<isSupportHDImpact><!--optional, xs:boolean, whether it supports HDD impact detection--></isSupportHDImpact>
<isSupportHDBadBlock><!--optional, xs:boolean, whether it supports HDD bad sector detection--></
isSupportHDBadBlock>
<isSupportSevereHDFailure><!--optional, xs:boolean, whether it supports HDD severe fault detection--></
isSupportSevereHDFailure>
</SHMCap>
<isSupportBVCorrect><!--optional, xs:boolean, whether it supports configuring camera correction parameters--></
isSupportBVCorrect>
<guideEventSupport opt="linkageCapture">
<!--optional,xs:string, events which support quick setup by instruction, "linkageCapture"-capture by linkage-->
</guideEventSupport>
<isSupportAutoSwitch><!--optional, xs:boolean, whether it supports auto switch--> true</isSupportAutoSwitch>
<isSupportDataPrealarm><!--optional,xs:boolean, whether it supports traffic pre-alarm event--></
isSupportDataPrealarm>
<supportGISEvent opt="AID,TPS,ANPR,mixedTargetDetection">
<!--optional, xs:string, event types that support GIS information access: AID (corresponding SDK event:
COMM_ALARM_AID_V41), TPS (corresponding SDK event: COMM_ALARM_TPS_REAL_TIME), ANPR (corresponding
31
Intelligent Security API (Metadata) Developer Guide
32
Intelligent Security API (Metadata) Developer Guide
B.10 XML_Metadata_ANPR
XML message about ANPR metadata
33
Intelligent Security API (Metadata) Developer Guide
<Property>
<description>plateType</description>
<value>arm</value>
</Property>
<Property>
<description>plateColor</description>
<value>yellow</value>
</Property>
<Property>
<description>vehicleColor</description>
<value>yellow</value>
</Property>
<Property>
<description>vehicleType</description>
<value>largeBus</value>
</Property>
<Property>
<description>vehicleLogo</description>
<value>1026</value>
</Property>
<Property>
<description>vehicleSublogo</description>
<value>5</value>
</Property>
<Property>
<description>confidence</description>
<value>100</value>
</Property>
<Property>
<description>country</description>
<value>16</value>
</Property>
<Property>
<description>directionIndex</description>
<value>forward</value>
</Property>
<Property>
<description>vehicleConfidence</description>
<value>100</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
direction
Optional, license plate direction, including reverse (backward), forward, and unknown.
licensePlate
Optional, string, license plate number. When subType is ANPR, this field is required.
34
Intelligent Security API (Metadata) Developer Guide
plateType
Optional, string, license plate types.
plateColor
Optional, license plate color, including white, yellow, blue, black, green, and 0xff (other), string
type.
vehicleColor
Optional, string, vehicle color, including unknown, white, silver, gray, black, red, deepBlue (dark
blue), blue, yellow, green, brown, pink, purple, deepGray (dark gray), cyan, and orange.
vehicleType
Optional, string, vehicle types.
vehicleLogo
Optional, string, vehicle brand.
vehicleSublogo
Optional, string, vehicle sub brand.
confidence
Optional, string, license plate confidence, it is between 0 and 100.
country
Optional, xs:integer, country or region index.
directionIndex
Optional, string, driving direction: "unknown", "eastWest"-from east to west, "westEast"-from
west to east, "southNorth"-from south to north, "noerthSouth"-from north to south,
"southeastToNorthwest"-from southeast to northwest, "northwestToSoutheast"-from
northwest to southeast, "northeastToSouthwest"-from northeast to southwest,
"southwestToNortheast"-from southwest to northeast, "forward"-forward, "back"-backward
vehicleConfidence
Optional, string, vehicle confidence, it is between 0 and 100.
B.11 XML_Metadata_BehaviorAnalysis
XML message about behavior analysis metadata
Rule Metadata
When Behavior Analysis Alarm is Not Triggered
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>ruleTarget</type>
<subType>behaviorAnalysis</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
35
Intelligent Security API (Metadata) Developer Guide
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>100</x>
<y>100</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>eventType</description>
<value>linedetection</value>
</Property>
<Property>
<description>crossdirection</description>
<value>lefttoright</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
When Behavior Analysis Alarm is Triggered
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>ruleTarget</type>
<subType>behaviorAnalysis</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<ruleID>1</ruleID>
<RegionList>
36
Intelligent Security API (Metadata) Developer Guide
<Region>
<Point>
<x>100</x>
<y>100</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>eventType</description>
<value>linedetection</value>
</Property>
<Property>
<description>triggerEvent</description>
<value>true</value>
</Property>
<Property>
<description>crossdirection</description>
<value>lefttoright</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
eventType
Required, behavior analysis alarm category, including linedetection (line crossing detection),
fielddetection (intrusion detection), regionEntrance (region entrance detection), regionExiting
(region exiting detection), parking (parking detection), loitering (loitering detection), group
(people gathering detection), rapidMove (fast moving detection), unattendedBaggage
(unattended baggage detection), attendedBaggage (object removal detection).
triggerEvent
Optional, the alarm is triggered or not, true-triggered, if not triggered, this field is invalid.
crossdirection
Optional, line crossing detection, including lefttoright (left to right), righttoleft (right to left),
bothdirection (bidirection). When the eventType is linedetection, this field is required.
37
Intelligent Security API (Metadata) Developer Guide
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<targetID>1</targetID>
<recognition>human</recognition>
<RegionList>
<Region>
<Point>
<x>0</x>
<y>0</y>
</Point>
<Point>
<x>50</x>
<y>0</y>
</Point>
<Point>
<x>50</x>
<y>50</y>
</Point>
<Point>
<x>0</x>
<y>50</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>triggerEvent</description>
<value>false</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
When Behavior Analysis Alarm is Triggered
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>activityTarget</type>
<subType>behaviorAnalysis</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
38
Intelligent Security API (Metadata) Developer Guide
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<targetID>1</targetID>
<recognition>human</recognition>
<RegionList>
<Region>
<Point>
<x>100</x>
<y>100</y>
</Point>
<Point>
<x>150</x>
<y>100</y>
</Point>
<Point>
<x>150</x>
<y>150</y>
</Point>
<Point>
<x>100</x>
<y>150</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>triggerEvent</description>
<value>true</value>
</Property>
<Property>
<description>eventType</description>
<value>linedetection</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
triggerEvent
Optional, alarm is triggered or not, true-trigered, if not triggered, this field is invalid.
recognition
Required, target type, including "human", "vehicle", and "zoology" (animal).
B.12 XML_Metadata_FaceCapture
XML message about face capture metadata
39
Intelligent Security API (Metadata) Developer Guide
Rule Metadata
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>ruleTarget</type>
<subType>faceSnap</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>0</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
<Point>
<x>0</x>
<y>600</y>
</Point>
</Region>
</RegionList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
ruleID
Rule ID
RegionList
Coordinates of region that configured with face capture rule.
40
Intelligent Security API (Metadata) Developer Guide
<subType>faceSnap</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<targetID>1</targetID>
<ruleID>1</ruleID>
<recognition>face</recognition>
<RegionList>
<Region>
<Point>
<x>0</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
<Point>
<x>0</x>
<y>600</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>faceScore</description>
<value>100</value>
</Property>
<Property>
<description>ageGroup</description>
<value>100</value>
</Property>
<Property>
<description>gender</description>
<value>male</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
41
Intelligent Security API (Metadata) Developer Guide
targetID
Person target ID
ruleID
Rule ID
recognition
Recognition target type, here it is face.
RegionList
Coordinates of face target position
B.13 XML_Metadata_QueueManagement
XML message about queue management metadata
42
Intelligent Security API (Metadata) Developer Guide
</Region>
</RegionList>
<PropertyList>
<Property>
<description>regionColor</description>
<value>blue</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
43
Intelligent Security API (Metadata) Developer Guide
<Property>
<description>waitTime</description>
<value>600</value>
<description>alarmTime</description>
<value>600</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
targetID
Person target ID
ruleID
Rule ID
recognition
The recognition target is person.
RegionList
Coordinates of person position.
44
Intelligent Security API (Metadata) Developer Guide
<y>600</y>
</Point>
<Point>
<x>0</x>
<y>600</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>regionColor</description>
<value>blue</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
ruleID
Rule ID
RegionList
Coordinates of region that configured with rule.
45
Intelligent Security API (Metadata) Developer Guide
</TargetDetection>
</Metadata>
B.14 XML_Metadata_RadarBehaviorAnalysis
XML message about radar behavior analysis metadata
46
Intelligent Security API (Metadata) Developer Guide
<TargetDetection>
<TargetList>
<Target>
<ruleID>1</ruleID>
<PolarCoordinatesList>
<Coordinate>
<angle>30</angle>
<distance>10</distance>
</Coordinate>
</PolarCoordinatesList>
</Target>
</TargetList>
</TargetDetection>
<PropertyList>
<Property>
<description>eventType</description>
<value>linedetection</value>
</Property>
<Property>
<description>triggerEvent</description>
<value>true</value>
</Property>
<Property>
<description>crossdirection</description>
<value>lefttoright</value>
</Property>
</PropertyList>
</Metadata>
47
Intelligent Security API (Metadata) Developer Guide
</RadarDetectionRegion>
</Metadata>
48
Intelligent Security API (Metadata) Developer Guide
<subType>behaviorAnalysis</subType>
<time>2020-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
<radarChannel>1</radarChannel>
</DevInfo>
<ActivityTargetList>
<Target>
<targetID>1</targetID>
<speed>30</speed>
<angle>50</angle>
<distance>30</distance>
<PropertyList>
<Property>
<description>triggerEvent</description>
<value>true</value>
</Property>
<Property>
<description>eventType</description>
<value>linedetection</value>
</Property>
</PropertyList>
</Target>
</ActivityTargetList>
</Metadata>
49
Intelligent Security API (Metadata) Developer Guide
B.15 XML_Metadata_Thermal
XML message about thermal related (i.e., real-time temperature measurement, fire source
detection, and ship detection) metadata
50
Intelligent Security API (Metadata) Developer Guide
<value>average</value>
</Property>
</PropertyList>
</Target>
<Target> //Lowest temperature point of a line
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>100</x>
<y>100</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>tempValue</description>
<value>20</value>
</Property>
<Property>
<description>tempUnit</description>
<value>centigrade</value>
</Property>
<Property>
<description>tempProperty</description>
<value>lowest</value>
</Property>
</PropertyList>
</Target>
<Target> //Highest temperature point of a line
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>200</x>
<y>200</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>tempValue</description>
<value>40</value>
</Property>
<Property>
<description>tempUnit</description>
<value>centigrade</value>
</Property>
<Property>
<description>tempProperty</description>
<value>highest</value>
</Property>
51
Intelligent Security API (Metadata) Developer Guide
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
tempValue
Required, target temperature, float type.
tempUnit
Required, temperature unit, including centigrade, fahrenheit, and kelvin.
tempProperty
Optional, target temperature property, including highest (highest temperature), lowest (lowest
temperature), and average (average temperature). This field is invalid when measuring
temperature by point.
52
Intelligent Security API (Metadata) Developer Guide
</RegionList>
<PropertyList>
<Property>
<description>distance</description>
<value>1000</value>
</Property>
</PropertyList>
</Target>
<Target>
<RegionList>
<Region>
<Point>
<x>300</x>
<y>300</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>tempValue</description>
<value>100</value>
</Property>
<Property>
<description>tempUnit</description>
<value>centigrade</value>
</Property>
<Property>
<description>tempProperty</description>
<value>highest</value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
distance
Optional, fire source distance, unit: m, integer type.
tempValue
Optional, fire source temperature, float type.
tempUnit
Optional, fire source temperature unit, including centigrade, fahrenheit, and kelvin.
tempProperty
Optional, target temperature property, currently, only contains highest (highest temperature).
53
Intelligent Security API (Metadata) Developer Guide
<subType>shipsDetection</subType>
<time>2017-01-01T00:00:00+08:00</time>
<DevInfo>
<ipAddress>192.168.0.64</ipAddress>
<portNo>554</portNo>
<macAddress>28:57:be:ee:d1:5a</macAddress>
<channel>1</channel>
</DevInfo>
<TargetDetection>
<TargetList>
<Target>
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>0</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
<Point>
<x>0</x>
<y>600</y>
</Point>
</Region>
</RegionList>
</Target>
</TargetList>
</TargetDetection>
</Metadata>
54
Intelligent Security API (Metadata) Developer Guide
<targetID>1</targetID>
<recognition>ship</recognition>
<ruleID>1</ruleID>
<RegionList>
<Region>
<Point>
<x>0</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>0</y>
</Point>
<Point>
<x>600</x>
<y>600</y>
</Point>
<Point>
<x>0</x>
<y>600</y>
</Point>
</Region>
</RegionList>
<PropertyList>
<Property>
<description>direction</description>
<value>left</value>
</Property>
<Property>
<description>state</description>
<value>crossing</value>
</Property>
<Property>
<description>length</description>
<value>50</value>
</Property>
<Property>
<description>height</description>
<value>3</value>
</Property>
<Property>
<description>width</description>
<value>5</value>
</Property>
<Property>
<description>speed</description>
<value>4</value>
</Property>
</PropertyList>
</Target>
</TargetList>
55
Intelligent Security API (Metadata) Developer Guide
</TargetDetection>
</Metadata>
direction
Optional, ship direction, including up (forward), down (backward), left (leftward), and right
(rightward).
state
Optional, ship detection status, including crossing (crossing detection line), nose (prow
detection), and tail (stern detection).
length, height, width
Optional, ship length, height, and width, unit: m.
speed
Optional, ship speed, unit: m/s.
B.16 XML_MetadataCfg
XML message about batch configuration parameters of metadata
<MetadataCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MetadataList><!--required-->
<Metadata><!--required-->
<type>
<!--required, xs: string, metadata type: "thermometry"-real-time temperature measurement, "fireDetection"-fire
source detection, "shipsDetection"-ship detection, "behaviorAnalysis"-behavior analysis, "ANPR", "personQueue"-
queue management, "faceSnap"-face capture, "radarDetection"-radar detection, "personalTrack"-personal tracking-->
</type>
<enable><!--required, xs:boolean: true-upload, false-not upload--></enable>
</Metadata>
</MetadataList>
<uploadDataFormat><!--optional, xs:string--></uploadDataFormat>
</MetadataCfg>
B.17 XML_Radar_Metadata
XML message about general medata of radar detection
<?xml version="1.0" encoding="utf-8"?>
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>
<!--required, xs:string, metadata type: ruleTargetRadar (rule metadata of radar detection), activityTargetRadar (real-
time target metadata of radar detection)-->
</type>
<subType><!--optional, xs:string, metadata sub type: behaviorAnalysis--></subType>
<time><!--required, xs:time, based on ISO 8601 time standard--></time>
<DevInfo><!--optional-->
56
Intelligent Security API (Metadata) Developer Guide
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--required, xs:integer--></portNo>
<macAddress><!--required, xs:string--></macAddress>
<domainName><!--optional, xs:string--></domainName>
<radarChannel><!--optional, xs:integer, radar channel-->1</radarChannel>
</DevInfo>
<TargetDetection><!--optional, rule region (relative to polar coordinate)-->
<TargetList><!--required-->
<Target><!--required-->
<ruleID><!--optional, xs:integer--></ruleID>
<PolarCoordinatesList><!--optional, polar coordinate list of rule region-->
<Coordinate><!--polar coordinate of rule region-->
<angle><!--required, xs:float, angle, value range: [-75,75], unit: degree--></angle>
<distance><!--required, xs:integer, detection range, the maximum value is 150, unit: m--></distance>
</Coordinate>
</PolarCoordinatesList>
</Target>
</TargetList>
</TargetDetection>
<RadarDetectionRegion><!--radar detection region parameters-->
<angle><!--required, xs:float, detection angle (unit: degree), which is accurate to two decimal places--></angle>
<distance><!--required, xs:float, detection range (unit: degree), which is accurate to two decimal places--></
distance>
<towards><!--required, xs:float, detection direction (unit: degree), which is accurate to two decimal places--></
towards>
<VertexPoint><!--coordinates of vertex on radar detection region-->
<x><!--required, xs:float, X-coordinate, value range: [0.000,1], which is accurate to three decimal places--></x>
<y><!--required, xs:float, Y-coordinate, value range: [0.000,1], which is accurate to three decimal places--></y>
</VertexPoint>
</RadarDetectionRegion>
<VideoDetectionRegion><!--parameters of video image region that relatives to radar-->
<angle><!--optional, xs:float, angle, value range: [0.00,359.00]--></angle>
<fieldView><!--optional, xs:float, field of view, value range: [0.00,180.00]--></fieldView>
</VideoDetectionRegion>
<ActivityTargetList><!--real-time target parameter list-->
<Target>
<speed><!--required, xs:integer, target moving speed, unit: km/h--></speed>
<angle><!--required, xs:float, target angle, value range: [-75,75], unit: degree--></angle>
<distance><!--required, xs:integer, target distance, the maximum value is 150, unit: m--></distance>
</Target>
</ActivityTargetList>
<PropertyList><!--property list-->
<Property>
<description><!--property name, xs:string--></description>
<value><!--property value, xs:object--></value>
</Property>
</PropertyList>
</Metadata>
57
Intelligent Security API (Metadata) Developer Guide
Remarks
For different detection types, the metadata details of radar detection are different, see the table
below.
Detection Type Metadata Details
Radar Behavior Analysis XML_Metadata_RadarBehaviorAnalysis
B.18 XML_ResponseStatus
XML message about response status
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
XML Format, 6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--required, read-only, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML
Format, Invalid XML Content, Reboot, Additional Error-->
</statusString>
<subStatusCode>
<!--required, read-only, xs:string, describe the error reason in detail-->
</subStatusCode>
</ResponseStatus>
Note
See Response Codes of Text Protocol for details about sub status codes and corresponding error
codes.
B.19 XML_SingleMetadataCfg
XML message about single configuration parameters of metadata
<SingleMetadataCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Metadata><!--required-->
<type>
<!--required, xs: string, metadata type: "thermometry"-real-time temperature measurement, "fireDetection"-fire
source detection, "shipsDetection"-ship detection, "behaviorAnalysis"-behavior analysis, "ANPR", "personQueue"-
queue management, "faceSnap"-face capture, "radarDetection"-radar detection, "personalTrack"-personal tracking-->
</type>
<enable><!--required, xs: boolean, "true"-upload, "false"-not upload--></enable>
58
Intelligent Security API (Metadata) Developer Guide
</Metadata>
</SingleMetadataCfg>
B.20 XML_Video_Metadata
XML message about general metadata of video
<Metadata version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>
<!--required, xs:string, ruleTarget (rule metadata), activityTarget (real-time target metadata), PTZ (PTZ metadata);
the rules will be uploaded when request started and rule changed only, while the real-time target will be uploaded
when it is detected-->
</type>
<subType>
<!--optional, xs:string, sub metadata type: "thermometry"-real-time temperature measurement, "fireDetection"-fire
source detection, "shipsDetection"-ship detection, "behaviorAnalysis"-behavior analysis, "ANPR", "personQueue"-
queue management, "faceSnap"-face capture, "personalTrack"-personal tracking; when the target is not in the
detection rule range, it will not be uploaded-->
</subType>
<time><!--required, xs:time, ISO8601, it corrects to millisecond, e.g., 2017-01-11T17:43:30.256+08:00--></time>
<DevInfo><!--optional, device information, it is used to differentiate the device when crossing domain and
multicasting-->
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--required, xs:integer--></portNo>
<macAddress><!--required, xs:string--></macAddress>
<channel><!--dependent, xs:integer --></channel>
<domainName><!--optional, xs:string--></domainName>
</DevInfo>
<TargetDetection><!--optional-->
<TargetList><!--required, uploading multiple targets at same time is allowed-->
<Target><!--required-->
<targetID>
<!--optional, xs:integer, target ID, it is valid for the real-time target uploading of ship detection and behavior
analysis.
The system or client can draw the moving target pattern according to this field-->
</targetID>
<recognition><!—optional,xs:string, "human, vehicle, ship"--></recognition>
<ruleID><!—optional,xs:integer, detection rule ID--></ruleID>
<RegionList><!--optional, target position, it will not be uploaded when the rule is invalid, point, line, and region-->
<Region>
<Point>
<x><!--required, xs:integer--></x>
<y><!--required, xs:integer--></y>
</Point>
</Region>
</RegionList>
<PropertyList> <!--optional, target attribute-->
<Property>
<description><!--optional--></description>
59
Intelligent Security API (Metadata) Developer Guide
<value><!--optional--></value>
</Property>
</PropertyList>
</Target>
</TargetList>
</TargetDetection>
<PTZInfo><!--optional, PTZ position-->
<elevation><!--required, xs:float, -90.000 to 270.000--></elevation>
<azimuth><!--required, xs:float, 0 to 360.000--></azimuth>
<zoom><!--optional, xs:float, 0 to 100000.00--></zoom>
<focus><!--optional, xs:integer, 0 to 100000--></focus>
<presetNo><!—optional, xs:integer--></presetNo>
</PTZInfo>
</Metadata>
Remarks
For different detection types, the metadata details are different, see the table below.
Detection Type Metadata Details
Thermal Related (Real-Time Temperature XML_Metadata_Thermal
Measurement, Fire Source Detection, and Ship
Detection)
Behavior Analysis XML_Metadata_BehaviorAnalysis
ANPR XML_Metadata_ANPR
Queue Management (Waiting Time Detection XML_Metadata_QueueManagement
and People Queuing-up Detection)
Face Capture XML_Metadata_FaceCapture
60
Intelligent Security API (Metadata) Developer Guide
StatusCode=1
StatusCode=2
61
Intelligent Security API (Metadata) Developer Guide
StatusCode=3
62
Intelligent Security API (Metadata) Developer Guide
StatusCode=4
63
Intelligent Security API (Metadata) Developer Guide
64
Intelligent Security API (Metadata) Developer Guide
65
Intelligent Security API (Metadata) Developer Guide
66
Intelligent Security API (Metadata) Developer Guide
67
Intelligent Security API (Metadata) Developer Guide
68
Intelligent Security API (Metadata) Developer Guide
69
Intelligent Security API (Metadata) Developer Guide
70
Intelligent Security API (Metadata) Developer Guide
71
Intelligent Security API (Metadata) Developer Guide
72
Intelligent Security API (Metadata) Developer Guide
73
Intelligent Security API (Metadata) Developer Guide
74
Intelligent Security API (Metadata) Developer Guide
75
Intelligent Security API (Metadata) Developer Guide
76
Intelligent Security API (Metadata) Developer Guide
77
Intelligent Security API (Metadata) Developer Guide
78
Intelligent Security API (Metadata) Developer Guide
79
Intelligent Security API (Metadata) Developer Guide
80
Intelligent Security API (Metadata) Developer Guide
81
Intelligent Security API (Metadata) Developer Guide
82
Intelligent Security API (Metadata) Developer Guide
83
Intelligent Security API (Metadata) Developer Guide
84
Intelligent Security API (Metadata) Developer Guide
85
Intelligent Security API (Metadata) Developer Guide
86
Intelligent Security API (Metadata) Developer Guide
87
Intelligent Security API (Metadata) Developer Guide
StatusCode=5
StatusCode=6
88
Intelligent Security API (Metadata) Developer Guide
89
Intelligent Security API (Metadata) Developer Guide
90
Intelligent Security API (Metadata) Developer Guide
91
Intelligent Security API (Metadata) Developer Guide
92
Intelligent Security API (Metadata) Developer Guide
93
Intelligent Security API (Metadata) Developer Guide
StatusCode=7
94