- 一進ipmotion( ipcam)
**GetBase64.cgi
=>hBase64=YWRtaW46cmQy (admin:rd2)
----------------------------
//ipcam
**GetCameraType.cgi?hBase64=YWRtaW46cmQy
=> 判斷是否ipcam or Dvr or QT or iss or cms( 0xAA<=CameraType & 0x 00FF <=0xB9 )
=> VideoNum // 分割數?
=>AudioNum //是否有audio?
=>IO_InputNum //是否有alarm
=> Backup // 是否有sd card
=> Resolution1 // 支援解析度?
=> AI_FUNC //是否有 FaceDetection or FaceRecognition
//qt
CameraType==0x00240171 + NvrType= 0x74AB0001
//fltk
其他(排除ipcam , vedio server , qt ,cms
//vedio server
CameraType==0x00240171
//cms
CameraType==0x00440168
----------------------------
**GetMultimedia.cgi?hBase64=YWRtaW46cmQy
Mode:go mjpeg or h264? or h265?
Video_Size: 大馬流
//QT & fltk &cms
not support
-------------以下 getfirst image---------------
**GetImage.cgi?Size=640x480
-------------以下 MAC---------------
**GetMAC.cgi?hBase64=YWRtaW46cmQy
NodeSite.setMac
-------------以下 ptz---------------
GetPTZ.cgi?hBase64=YWRtaW46cmQy
PTZModel
-------------以下 chatting---------------
Chatting.cgi?Chatting=0&hBase64=YWRtaW46cmQy
-------------以下 日期/time---------------
GetPlayBack.cgi?Show=Date&hBase64=YWRtaW46cmQy
GetPlayBack.cgi?Time=20191110
- 一進 ipcam live
//是否支持 魚眼
http://admin:rd2@192.168.82.74:80/GetPTZCap.cgi
FishEyeCap
//ai 用
http://admin:rd2@192.168.82.74:80/GetPeopleEvent.cgi
//get first image + stream live
http://192.168.82.74:80/GetImage.cgi?Size=vga
http://192.168.82.74:80/GetStream.cgi?Video=0&Audio=0 (Video=channel)
http://192.168.82.74:80/GetStream.cgi?Audio=0
- 一進ipmotion (NVR)
GetBase64.cgi
GetCameraType.cgi
GetMultimedia.cgi
GetMAC.cgi?
//ipcam aws server deregister; //fltk 特有?
deregister_device.cgi?os=android&device=19afd09bd4f73e07ad053275e8c0b8a1&
//fltk 特有?
GetFunctionSupport.cgi? (確認是否有cgi) => EXCEPTION_CONNECTION_NOT_FOUND =>isDVRdevice
GetIPCamSupportAll.cgi? => ptz support
//fltk 特有?
GetIPCamSupport.cgi?CH=0
GetIPCamSupport.cgi?CH=1
GetIPCamSupport.cgi?CH=2
GetIPCamSupport.cgi?CH=3
//fltk
GetRecordTime.cgi
=> recordday 那些日期有
- 一進 DVR live
//ipcam name
http://admin:admin@192.168.82.49:80/GetName.cgi
//rtmp 是否支援?
http://admin:admin@192.168.82.49:80/QCGetUpstream.cgi?hBase64=YWRtaW46YWRtaW4=
//relay 是否支援
http://admin:admin@192.168.82.49:80/QCGetRelayInfo.cgi
//relay box 是否支援
http://admin:admin@192.168.82.49:80/GetRelayBoxSupport.cgi
http://192.168.82.49:80/GetStream.cgi?Video=0&Audio=0
http://admin:admin@192.168.82.49:80/SetCHEnable.cgi?session=0012157208&nDISP=1&nGROUP=0&CH_ENABLE=1111&AUDIO_ENABLE=0
http://admin:admin@192.168.82.49:80/GetAuthor.cgi?user=admin
=>Play_Event 權限
- ======其他========
- live stream:
HuntStreamManager::openStream():
videoServer:
url = mNode.getSite().getVideoServer_StreamApi(mChannel); //videoServer; GetStream.cgi?Video= channel
audioUrl = mNode.getSite().getVideoServer_AudioStreamApi(mChannel);//; GetStream.cgi?Audio= channel
Camera video:
url = mNode.getSite().getCameraVideoStreamApi(mChannel); //Camera video; GetStream.cgi?Video=0&Audio=0
audioUrl = mNode.getSite().getCameraAudioStreamApi(); //Camera audio; GetStream.cgi?Audio=0
NVR:
url = mNode.getSite().getCameraVideoStreamApi(mChannel); //NVR video+audio ; GetStream.cgi?Video=0&Audio=0
configStream() //SetCHEnable.cgi?session=1025202362&nDISP=1&nGROUP=0&CH_ENABLE=1111000000000000000000000000000000000000000000000000000000000000&AUDIO_ENABLE=0
--------------------------------------
GetStream.cgi
- playback stream:
同上,但控制為 其他cgi
- ipcam & dvr first image
NVR:
GetJPG.cgi?CH=1
IPcam:
GetImage.cgi?Size=vga
- face (參考: NodeConnection:faceDetectionPostCGI)
is support cgi:
//deprecated , 是否支援人臉, 改由 AI_FUNC (GetCameraType.cgi)決定(ipcam)
{"command":"fdr_get"}
//所有人臉人員 資訊
{"command":"namelist"}
//取人臉圖
{"command":"face_images","UUID":"19f46bac-6109-46ba-a610-f46bace6109f", "limit":1}
//移除使用者
{"command":"remove_user","UUID":"19f46bac-6109-46ba-a610-f46bace6109f"}
//註冊 or 更新使用者
{"command":"register_user","UUID":"31180851-612e-4dc7-b4cd-686a1507810d","info":{"name":"zzzqqq","organization":"Unknown","group":"Unknown" },"pictures":["base64_pic"]}
{"command":"update_user","UUID":"31180851-612e-4dc7-b4cd-686a1507810d","info":{"name":"zzzqqq","organization":"Unknown","group":"Unknown" },"pictures":["base64_pic"]}
//人臉事件截圖
{"command":"face_recognition_event_with_face_snapshot","timeslot_start":1573537374000, "timeslot_end":1573623774000,"filter":{"name":"","group":0, "gender":3,"age_min":0, "age_max":100 },"page":{"offset":0,"limit":10 }}
//存在的group 最多10 (用於搜尋,新增)
{"command":"grouplist"}
//存在的org 最多10 (用於搜尋,新增)
{"command":"organizationlist"}
{"command":"face_recognition_event_with_face_snapshot","timeslot_start":1573537374000, "timeslot_end":1573623774000,"filter":{"name":"","group":0, "gender":3,"age_min":0, "age_max":100 },"page":{"offset":0,"limit":10 }}
- AI people counting,queue counting
GetPeopleEvent.cgi
先檢查事件類型
event_opt //事件類型 6:Queue Detection 7:People counting ;10: 入侵偵測 Intruder detection; 11: 電子圍籬 Electronic fence
if Queue Detection(event_opt=6) || Intruder(event_opt=10)|| Electronic(event_opt=11)
再檢查偵測框類型
det_reg0 //0:Rectangle 1:Polygon(Queue Detection)
if Rectangle(det_reg0=0)
rect_num0 //表示偵測框有幾個點(Rectangle)
rect0_0~rect0_7 //根據rect_num的值決定要取到第幾個座標
if Polygon(det_reg0=1)
pt_num0 //表示偵測框有幾個點(Polygon)
pt0_0~pt0_19 //根據pt_num0的值決定要取到第幾個座標
if People counting(event_opt=7)
rotate0_0~rotate0_3 //People counting模式取此座標
rect_d0_0~rect_d0_7 //未知
- thermal cam (temperature)
- GetThermal.cgi
feverwarning_val=37.50<br> // 警報溫度
feverwarning_en=0<br> // warning 是否送?
fever_alarmsound_en=0<br> //??
fever_degree=0<br>
board_temp=45.36<br> //thermal模組溫度
heater_temp=45.00<br> //??
cpu_temp=64.24<br> //??
highest_temp=31.9<br> //??
tempography=0<br>
profile=7<br> //環境補償參數
status=0<br> //thermal狀態
- SetThermal.cgi
參數同上,
手機用:
feverwarning_val
- stream struct
sizeof 262
typedef struct _FACE_RECOGNITION_BODY
{
unsigned short x; ,pos:0
unsigned short y; ,pos:2
unsigned short width;,pos:4
unsigned short height; ,pos:6
unsigned char name_show; ,pos:8 //ActiveX是否顯示 0/1 OFF/ON
unsigned char name[64]; ,pos:29 //(商/閱)名字 '\0'/[name] None/Name 最多63個字
unsigned char group_show; ,pos:73 //ActiveX是否顯示 0/1 OFF/ON
unsigned char group[64]; ,pos:74 //(商/閱)群組 '\0'/[name] None/Group 最多63個字
unsigned char organization_show; ,pos:138 //ActiveX是否顯示 0/1 OFF/ON
unsigned char organization[64]; ,pos:139 //(商/閱)組織 '\0'/[name] None/Organization 最多63個字
//
// +---------------+
// |0|1|2|3|4|5|6|7|
// +-+-------------+
// |s| value |
// +-+-------------+
// show(s): unsigned char 中 第一個 bit (上面 S 的位置) 如果設定為1則ActiveX 會顯示 0則是不會顯示
//level, age, gender, glasses, mask, race, beard, expression,live 皆是以上結構
unsigned char age; ,pos:203 //(商/閱)年紀 0~100: None/0~100
unsigned char color[3]; ,pos:204 //(商/閱)邊框顏色RGB
unsigned char size; ,pos:207 //(商/閱)邊框粗細 1/3/5/7/9
unsigned char font_size; ,pos:208 //(商/閱)文字大小 6/8/10/12/14
unsigned char gender; ,pos:209 //(商/閱)性別 0/1 : male/female
unsigned char glasses; ,pos:210 //眼鏡 0/1/2 : None/glasses/sunglasses
unsigned char mask; ,pos:211 //面具 0/1 : None/mask
unsigned char race; ,pos:212 //種族 0/1/2 : yellow/black/white
unsigned char beard; ,pos:213 //鬍子 0/1 :None/beard
unsigned char expression;,pos:214 //表情 0/1/2/3/4 :angry/happy/sad/calm/suprised
unsigned char stay_time_show;,pos:215 //ActiveX是否顯示 0/1 OFF/ON
unsigned int stay_time; ,pos:216 //(商/閱)逗留時間(sec) -1/~ :停留秒數
unsigned int thumbnail_size; ,pos:220 //(商/閱)縮圖大小
unsigned int tid; ,pos:224 //(商/閱)偵測人臉的編號(track id)
unsigned int db_amount; ,pos:228 //(商/閱)Database資料數量
unsigned int db_timestamp;,pos:232 //(商/閱)Database最後更新時間
unsigned int face_count_num;,pos:236 //人臉計數
unsigned char live; ,pos:240 //活體 0/1/2:未知/活體/非活體
unsigned char roi_area; ,pos:241 //人臉位於的ROI區塊
// +---------------+
// |0|1|2|3|4|5|6|7|
// +---------------+
// | value |
// +---------------+
// bit0~bit7 分別代表區塊8~區塊1, 0/1:無/位於該區塊
short yaw; ,pos:242 //(商/閱)人臉朝向角度
short pitch; ,pos:244 //(商/閱)人臉俯仰角度
short roll; ,pos:246 //(商/閱)人臉左右傾斜角度
unsigned char temp_show; ,pos:248
//
// +---------------+
// |0|1|2|3|4|5|6|7|
// +-+----------------------+
// |s| value |
// +-+----------------------+
// show(s): unsigned char 中 第一個 bit (上面 S 的位置) 為ActiveX 是否顯示溫度0/1:顯示/不顯示;bit7: 溫度單位 0/1 dC/dF
float temp; ,pos:249 //人臉溫度
unsigned short temp_x; ,pos:253 //溫度標示水平位置
unsigned short temp_y; ,pos:255 //溫度標示垂直位置
unsigned char temp_color[3];,pos:257 //溫度標示顏色 RGB
unsigned char temp_size;,pos:260 //溫度文字大小 6/8/10/12/14
unsigned char show_style;,pos:261 // 0:顯示溫度靶,1:顯示人臉框
}__attribute__((packed)) FACE_RECOGNITION_BODY;
沒有留言:
張貼留言