AIDA Imaging HTTP Access Guide
For IP Video Cameras Only
OCT 2024 Revision
This guide was intended to help users write and make their own programs to directly connect to our cameras. This flexibility helps add to your creativeness and twist to controlling the camera!
You do not have to use this guide to use the camera. Not all settings in this document pertain to each model, only if the model has that certain feature will the access to those features work.
Applicable Product List:
POV: HD-NDI-200, HD3G-NDI-200l, HD-NDI-X20, HD-NDI-CUBE, HD-NDI-IP67, HD-NDI-MINI, HD-NDI-VF, HD-NDI-TF, HD-NDI3-120, HD-NDI3-IP67, UHD-NDI3-300, UHD-NDI3-IP67, UHD-NDI3-X30
PTZ: PTZ-X12-IP, PTZ-X20-IP, PTZ-NDI-X12, PTZ-NDI-X18, PTZ-NDI-X20, PTZ-NDI3-X20, PTZ4K-NDI-X12, PTZ4K-NDI-X30, PTZ4K12G-FNDI-X30
*NDI® is a registered trademark to VIZRT AB
1.1 Getting Started
When using this document should have a certain understanding and mastery of the http protocol and its POST request method.
1.2 Grammatical regulations
HTTP is a standard for requests and responses between the client and server side. Using a web browser, web crawler, or other tool, the client initiates an HTTP request to a specified port on the server (the default port is 80). The client is generally referred to as a user agent program. The server responds to the client request and stores some resources on the server, such as HTML files and images. This type of server is generally referred to as a Web server.
HTTP Request requests need to follow the following directives
All parameter requests to go “post” way, with two different ways to distinguish between getting get and setting set via func
Set parameter interface
http://cgi-bin/web.fcgi?func=set
Get parameter interface
http://cgi-bin/web.fcgi?func=get
1.3 Request and Response simple example
Assuming our camera ip is 192.168.1.180, the syntax according to 1.2 states
Get parameter interface.
http://192.168.1.180/cgi-bin/web.fcgi?func=get
Set the interface
http://192.168.1.180/cgi-bin/web.fcgi?func=set
**Login request as an example**
This request is a get method, so the request sets the interface url, and transmits the content parameters in json format
Parameter content
“`
{
“system”:
{
“login”:”user:password”,
}
}
“`
The json string system represents the call to the main function, login represents the call to the parameter. user:password represents the incoming parameters.
For example, if the current camera account and password are both admin, the final transmission format is
“`
{
“system”:
{
“login”:”admin:admin”,
}
}
“`
The return content is returned after the request, and the return content returns different parameters depending on the method used to call the function. The login method returns the following json content
Success to return
“`
{
“status”:true
“system”:
{
“login”:int
}
}
“`
Fail to return
“`
{
“status”:false
“system”:
{
“login”:false
}
}
“`
where status is the status of the function call , true for success and false for failure.
The return format is in accordance with the request format, system is the call to the main function, login is the call to return the key
Note: In addition to login, any other command interaction must be passed a key, the syntax is “key”:int, and the value of int attached to “key” is the value returned by the “login ” operation returns the value
**Take the network interface as an example**
There are two network parameter interfaces, which are get network interface parameters and set network interface parameters. From the above example, it can be seen that
Get parameter interface.
http://192.168.1.180/cgi-bin/web.fcgi?func=get
Set interface
http://192.168.1.180/cgi-bin/web.fcgi?func=set
**Get network parameters**
“`
{
“key”: “The value corresponding to the login field in the login interface”,
“ethernet”:{“eth0”:true}
}
“`
This request means: I want to call to get all parameters under eth0 of the ethernet.
Normal return:
“`
{
“status”:true,
“ethernet”:
{
“eth0”:{
“dhcp”:int, //0 manual 1 auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“httpPort”:int,
“webPort”:int,
“rtspPort”:int,
“rtmpPort”:int
}
}
“`
When the interface is normal, i.e., when status is ture, all interface parameters of the network are obtained
**Setting network parameters**
“`
{
“key”: “The value corresponding to the login field in the login interface”,
“ethernet”:
{
“eth0”:{
“dhcp”:int //0 manual 1auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“mac”:”01:23:45:67:89:ab”,
“httpPort”:int,
“webPort”:int,
“rtspPort”:int,
“rtmpPort”:int
}
}
}
“`
When set successfully, the json string is returned
“`
{
“status”:true,
“ethernet”:
{
“eth0”:{
“dhcp”:int //0 manual 1 auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“mac”:”01:23:45:67:89:ab”
“httpPort”:int,
“webPort”:int,
“mainStreamPort”:int,
“subStreamPort”:int
“rtspPort”:int
“rtmpPort”:int
}
}
“`
1.4 Test Description
A postman can be downloaded for protocol testing (https://www.getpostman.com/downloads/).
The use of the software can be found in the accompanying video instructions.
2 Video Encode Settings
2.1 Coding parameter setting
Set
Request
{
“key”:int,
“venc”:{
“main”:{
“enable”:int,
“mode”:”h264″, //”h264″、”h265″、”mjpeg”
“col”:3840, //int
“line”:2160, //int
“bitrate”:115200, //int
“frmrate”:30, //int
“rcmode”:”cbr”, //”cbr”、”vbr”
“profile”:”MP”, //”baseline”、”MP”、”HP”
“interval”:30 //int
},
“sub”:{
“enable”:int,
“mode”:”h264″,
“col”:1280,
“line”:720,
“bitrate”:4096,
“frmrate”:30,
“rcmode”:”cbr”,
“profile”:”MP”, //”baseline”、”MP”、”HP”
“interval”:30
}
}
}
Response
Set up successfully, return the latest encoding parameters
{
“status”:true
“venc”:{
“main”:{
“enable”:int,
“mode”:”h264″,
“col”:3840,
“line”:2160,
“bitrate”:115200,
“frmrate”:30,
“rcmode”:”cbr”,
“profile”:”MP”,
“interval”:30
},
“sub”:{
“enable”:int,
“mode”:”h264″,
“col”:1280,
“line”:720,
“bitrate”:4096,
“frmrate”:30,
“rcmode”:”cbr”,
“profile”:”MP”,
“interval”:30
}
}
}
Encoding configuration not supported
{
“status”:false
“venc”:false
}
No support for primary or sub streams
{
“status”:false
“venc”:{“main”:false,sub”:false}
}
Parameter error
{
“status”:false
“venc”:{“main”:false}
}
2.2 Encoding parameter acquisition
Get
Request
{
“key”:int,
“venc”:{“main”:true,”sub”:true}
}
Or
{
“key”:int,
“venc”:{
“main”:{
“enable”:true,
“mode”:true,
“col”:true,
“line”:true,
“bitrate”:true,
“frmrate”:true,
“rcmode”:true,
“profile”:true,
“interval”:true,
“rtspUrl”:true
“rtmpUrl”:true
},
“sub”:{
“enable”:true,
“mode”:true,
“col”:true,
“line”:true,
“bitrate”:true,
“frmrate”:true,
“rcmode”:true,
“profile”:true,
“interval”:true,
“rtspUrl”:true
“rtmpUrl”:true
}
}
}
Response
{
“status”:true,
“venc”:{
“main”:{
“enable”:int,
“mode”:”h264″,
“col”:3840,
“line”:2160,
“bitrate”:115200,
“frmrate”:30,
“rcmode”:”cbr”,
“profile”:”MP”,
“interval”:30,
“rtspUrl”:”rtsp://192.168.1.155:554/stream/main”
“rtmpUrl”:”rtmp://192.168.1.155:1935/app/rtmpstream0″
},
“sub”:{
“enable”:int,
“mode”:”h264″,
“col”:1280,
“line”:720,
“bitrate”:4096,
“frmrate”:30,
“rcmode”:”cbr”,
“profile”:”MP”,
“interval”:30,
“rtspUrl”:”rtsp://192.168.1.155:554/stream/sub”
“rtmpUrl”:”rtmp://192.168.1.155:1935/app/rtmpstream1″
}
}
}
Encoding configuration not supported
{
“status”:false,
“venc”:false,
}
No support for primary or sub streams
{
“status”:false,
“venc”:{“main”:false}
}
3 Audio Encoding
3.1 Audio encoding settings
Set
Request
{
“key”:int,
“audio”:{
“enable”:int,
“samplerate”:int,
“bitwidth”:int,
“soundMode”:”Mono”, //”Mono”、”Stereo”
“encMode”:”G711A”,
//”G711A”、”G711U”、”ADPCMA”、”G726″、”LPCM”、”AAC”
“bitrate”:int //Bps
8000、16000、22000、24000、32000、48000、64000、96000、128000、256000、320000
}
}
Response
Set successfully, return the latest audio encoding parameters
{
“status”:true,
“audio”:{
“enable”:int,
“samplerate”:int,
“bitwidth”:int,
“soundMode”:”Mono”,
“encMode”:”G711A”,
“bitrate”:int
}
}
No support for encoding configuration or parameter errors
{
“status”:false,
“audio”:false
}
3.2 Audio encoding parameter acquisition
Get
Request
{
“key”:int,
“audio”:true
}
Or
{
“key”:int,
“audio”:{
“enable”:true,
“samplerate”:true,
“bitwidth”:true,
“soundMode”:true,
“encMode”:true,
“bitrate”:true
}
}
Set successfully, return the latest audio encoding parameters
{
“status”:true,
“audio”:{
“enable”:int,
“samplerate”:int,
“bitwidth”:int,
“soundMode”:”Mono”,
“encMode”:”G711A”,
“bitrate”:int
}
}
Failed to get or did not support change command
{
“status”:false,
“audio”:false
}
4 Network Settings
4.1 Network parameter setting
Set
Request
{
“key”:int,
“ethernet”:
{
“eth0”:{
“dhcp”:int //0 manual 1 auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“mac”:”01:23:45:67:89:ab”
“httpPort”:int,
“rtspPort”:int
“rtmpPort”:int
}
}
}
Network settings are not supported
{
“status”:false,
“ethernet”:false,
}
eth0 does not exist or does not support the configuration.
{
“status”:false,
“ethernet”:{“eth0”:false}
}
Some network parameters failed to be set.
{
“status”:false,
“ethernet”:
{
“eth0”:{
“dhcp”:int //0 manual 1 auto
“ip”:false,
“netmask”:”192.168.1.1″,
“gateway”:false,
“dns”:”192.168.1.1″,
“mac”:”01:23:45:67:89:ab”,
“httpPort”:int,
“rtspPort”:int,
“rtmpPort”:int
}
}
}
Set up successfully
{
“status”:true,
“ethernet”:
{
“eth0”:{
“dhcp”:int //0 manual 1auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“mac”:”01:23:45:67:89:ab”
“httpPort”:int,
“rtspPort”:int,
“rtmpPort”:int
}
}
4.2 Network parameter acquisition
Get
Request:
{
“key”:int,
“ethernet”:{“eth0”:true}
}
or
{
“key”:int,
“ethernet”:
{
“eth0”:{
“dhcp”:true,
“ip”:true,
“netmask”:true,
“gateway”:true,
“dns”:true,
“mac”:true,
“httpPort”:true,
“rtspPort”:true
“rtmpPort”:true
}
}
}
Response
{
“status”:true,
“ethernet”:
{
“eth0”:{
“dhcp”:int // 0 manual 1 auto
“ip”:”192.168.1.155″,
“netmask”:”192.168.1.1″,
“gateway”:”192.168.1.1″,
“dns”:”192.168.1.1″,
“httpPort”:int,
“rtspPort”:int
“rtmpPort”:int
}
}
Network parameter acquisition is not supported
{
“status”:false,
“ethernet”:false,
}
eth0 does not exist or does not support the configuration.
{
“status”:false,
“ethernet”:{“eth0”:false}
}
Some network parameters failed to be obtained.
{
“status”:false,
“ethernet”:
{
“eth0”:{
“dhcp”:int // 0 manual 1 auto
“ip”:false,
“netmask”:”192.168.1.1″,
“gateway”:false,
“dns”:”192.168.1.1″,
“httpPort”:int,
“rtspPort”:int
“rtmpPort”:int
}
}
}
5 Image Control
5.1 Image parameter settings
Set:
Request
{
“key”:int,
“image”:
{
“focus_mode”:”auto”, //”auto”,”manual”
“focus_distance”:”1.5m”, //”1.5m”,”2m”,”3m”,”6m”,”10m”
“exposure_mode”:”auto”, //”auto”,”manual”,”iris priority”,”shutter priority”,”brightness priority”
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
“anti_flicker”:int, //0: 1:50Hz 2:60Hz
“exposure_brightness”:int, //0~27
“iris”:int, //0~13
“gain”:int, //0~15
“WB_mode”:”auto” //”auto”,”indoor”,”outdoor”,”one push”,”auto tracking”,”manual”
“R_gain”:int, //0~255
“B_gain”:int, //0~255
“mirror”:int
“flip”:int,
“backlight_compensation”:int,
“gamma”:int, //0~4
“digital_zoom_enable”:int,
“WDR_enable”:int,
“WDR_level”:int, //1~6
“brightness”:int, //0~15
“sharpness”:int, //0~15
“contrast”:int, //0~15
“saturation”:int, //0~15
“DC_iris”:int, //0: close 1: open
“noise_reduction_2D”:int,
“noise_reduction_3D”:int, //0 auto 1:level1 2:level2 3:level3 4:level4 5:disable
“vo_resolution”:”1920X1080P@60Hz”
“image_reset”:int
“zoom”:[type,speed] //type 0 zoom stop 1 zoom in 2 zoom out speed:0~7
“focus”:[type,speed] //type 0 focus stop 1 focus near 2 focus far speed:0~7
“ptz”:[type,speed] //type 0 ptz stop 1 up 2 down 3 left 4 right 5 home 6 reset 7 up+left 8 down+left 9 up+right 10 down+right speed:0~0x18
“preset”:{“add”:int,”del”:int,”call”:int,”check”:int}
“snap”:int // Image capture; =1 enable, successful capture returns true, failure returns false
“abs ctrl”:
{
“zoom”:int,
“focus”:int,
“pan”:int,
“tilt”:int
}
}
}
Response
{
“status”:true
“image”:
{
“focus_mode”:”auto”, //”auto”,”manual”
“focus_distance”:”1.5m”, //”1.5m”,”2m”,”3m”,”6m”,”10m”
“exposure_mode”:”auto”, //”auto”,”manual”,”iris priority”,”shutter priority”,”brightness priority”
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
“anti_flicker”:int, //0:close 1:50Hz 2:60Hz
“exposure_brightness”:int, //0~27
“iris”:int, //0~13
“gain”:int, //0~15
“WB_mode”:”auto” //”auto”,”indoor”,”outdoor”,”one push”,”auto tracking”,”manual”
“R-gain”:int, //0~255
“B-gain”:int, //0~255
“mirror”:int
“flip”:int,
“backlight_compensation”:int,
“gamma”:int, //int
“digital_zoom_enable”:int,
“WDR_enable”:int,
“WDR_level”:int, //1~6
“brightness”:int, //0~15
“sharpness”:int, //0~15
“contrast”:int, //0~15
“saturation”:int, //0~15
“DC_iris”:int, // 0: close 1: open
“noise_reduction_2D”:int,
“noise_reduction_3D”:int, //0 auto 1:level1 2:level2 3:level3 4:level4 5:disable
“vo_resolution”:”1920X1080P@60Hz”
“image reset”:true
“zoom”:true
“focus”:true
“ptz”:true
“preset”:true
“snap”:true
“abs ctrl”:true
}
}
If it fails, the corresponding subparagraph is set to false, for example
{
“status”:false
“image”:
{
“focus_mode”:”auto”, //”auto”,”manual”
“focus_distance”:false,
“exposure_mode”:”auto”, //”auto”,”manual”,”iris priority”,”shutter priority”,”brightness priority”
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
“anti_flicker”:int, //0:close 1:50Hz 2:60Hz
“exposure_brightness”:false,
“iris”:int, //0~13
“gain”:int, //0~15
“WB_mode”:”auto” //”auto”,”indoor”,”outdoor”,”one push”,”auto tracking”,”manual”
“R-gain”:int, //0~255
“B-gain”:int, //0~255
“mirror”:false,
“flip”:int,
“backlight_compensation”:int,
“gamma”:int, //int
“digital_zoom_enable”:int,
“WDR_enable”:int,
“WDR_level”:int, //1~6
“brightness”:int, //0~15
“sharpness”:int, //0~15
“contrast”:int, //0~15
“saturation”:int, //0~15
“noise_reduction_2D”:int,
“noise_reduction_3D”:int, //0 auto 1:level1 2:level2 3:level3 4:level4 5:disable
“vo_resolution”:”1920X1080P@60Hz”
“image reset”:true,
“zoom”:true,
“focus”:true,
“ptz”:true,
“preset”:false,
“snap”:false
“abs ctrl”:false
}
}
5.2 Image parameter acquisition
Get
Request
{
“key”:int,
“image”:{
“focus_mode”:true,
“focus_distance”:true,
“exposure_mode”:true,
“shutter”:true,
“anti_flicker”:true,
“exposure_brightness”:true,
“iris”:true,
“gain”:true,
“WB_mode”:true,
“R_gain”:true,
“B_gain”:true,
“mirror”:true,
“flip”:true,
“backlight_compensation”:true,
“gamma”:true,
“digital_zoom_enable”:true,
“WDR_enable”:true,
“WDR_level”:true,
“brightness”:true,
“sharpness”:true,
“contrast”:true,
“saturation”:true,
“DC_iris”:true,
“noise_reduction_2D”:true,
“noise_reduction_3D”:true,
“vo_resolution”:true,
“vo_support”:true,
“frame_rate”:true,
“preset”:int
“zoom”:true,
“focus”:true,
“pan”:true,
“tilt”:true
}
}
Response
Get success, return relative value
{
“status”:true
“image”:
{
“focus_mode”:”auto”, //”auto”,”manual”
“focus_distance”:”1.5m”, //”1.5m”,”2m”,”3m”,”6m”,”10m”
“exposure_mode”:”auto”, //”auto”,”manual”,”iris priority”,”shutter priority”,”brightness priority”
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
“anti_flicker”:int, //0:close 1:50Hz 2:60Hz
“exposure_brightness”:int, //0~27
“iris”:int, //0~13
“gain”:int, //0~15
“WB_mode”:”auto” //”auto”,”indoor”,”outdoor”,”one push”,”auto_tracking”,”manual”,”sodium”,”fluorescent”
“R_gain”:int, //0~255
“B_gain”:int, //0~255
“mirror”:int
“flip”:int,
“backlight_compensation”:int,
“gamma”:int, //int
“digital_zoom_enable”:int,
“WDR_enable”:int,
“WDR_level”:int, //1~6
“brightness”:int, //0~15
“sharpness”:int, //0~15
“contrast”:int, //0~15
“saturation”:int, //0~15
“DC_iris”:int, // 0: close 1: open
“noise_reduction_2D”:int,
“noise_reduction_3D”:int, //0 auto 1:level1 2:level2 3:level3 4:level4 5:disable
“vo_resolution”:”1920X1080P@60Hz”
“vo_support”:int //bit[0]1920X1080P@25Hz bit[1]1920X1080P@50Hz bit[2]1920X1080P@30Hz bit[3]1920X1080P@60Hz bit[4]1280x720P@25Hz bit[5]1280x720P@50Hz bit[6]1280x720P@30Hz bit[7]1280x720P@60Hz
//bit[8]3840X2160P@25Hz bit[9]3840X2160P@30Hz bit[10]1920X1080I@50Hz bit[11]1920X1080I@60Hz bit[12]1920X1080P@59.94Hz bit[13]1920X1080P@29.97Hz bit[15]1280x720P@59.94Hz bit[16]1280x720P@29.97Hz
“frame_rate”:int
“preset”:int //0 exist 1 non-exist
“zoom”:0,
“focus”:4000,
“pan”:0,
“tilt”:0
}
}
If failed, set to false relative to the Sub-items, eg:
{
“status”:false
“image”:
{
“focus_mode”:”auto”, //”auto”,”manual”
“focus_distance”:”1.5m”, //”1.5m”,”2m”,”3m”,”6m”,”10m”
“exposure_mode”:”auto”, //”auto”,”manual”,”iris priority”,”shutter priority”,”brightness priority”
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
“anti_flicker”:int, //0:close 1:50Hz 2:60Hz
“exposure_brightness”:int, //0~27
“iris”:int, //0~13
“gain”:int, //0~15
“WB_mode”:false,
“R_gain”:false,
“B_gain”:false,
“mirror”:false,
“flip”:int,
“backlight_compensation”:int,
“gamma”:int, //int
“digital_zoom_enable”:int,
“WDR_enable”:int,
“WDR_level”:int, //1~6
“brightness”:int, //0~15
“sharpness”:int, //0~15
“contrast”:int, //0~15
“saturation”:int, //0~15
“noise_reduction_2D”:int,
“noise_reduction_3D”:int, //0 auto 1:level1 2:level2 3:level3 4:level4 5:disable
“vo_resolution”:”1920X1080P@60Hz”
“vo_support”:int //bit[0]1920X1080P@25Hz bit[1]1920X1080P@50Hz bit[2]1920X1080P@30Hz bit[3]1920X1080P@60Hz bit[4]1280x720P@25Hz bit[5]1280x720P@50Hz bit[6]1280x720P@30Hz bit[7]1280x720P@60Hz
//bit[8]3840X2160P@25Hz bit[9]3840X2160P@30Hz bit[10]1920X1080I@50Hz bit[11]1920X1080I@60Hz bit[12]1920X1080P@59.94Hz bit[13]1920X1080P@29.97Hz bit[15]1280x720P@59.94Hz bit[16]1280x720P@29.97Hz
“frame_rate”:int
“preset”:false
}
}
6 RTMP Streaming
6.1 RTMP Streaming parameter setting
Set
Request
{
“key”:int,
“rtmp”:{
“main”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream2″,
},
“sub”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream3″,
}
}
}
Response
Set up successfully, return the latest encoding parameters
{
“status”:true
“rtmp”:{
“main”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream2″,
“status”:int, //0 streaming failure 1 streaming success
},
“sub”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream3″,
“status”:int, //0 streaming failure 1 streaming success
}
}
}
RTMP streaming configuration is not supported
{
“status”:false
“rtmp”:false
}
Not support primary or sub stream configuration
{
“status”:false,
“rtmp”:{“main”:false,sub”:false}
}
Parameter error
{
“status”:false,
“rtmp”:{“main”:false}
}
6.2 RTMP Streaming parameter acquisition
Get
Request
{
“key”:int,
“rtmp”:{“main”:true,”sub”:true}
}
or
{
“key”:int,
“rtmp”:{
“main”:{
“enable”:true,
“url”:true,
},
“sub”:{
“enable”:true,
“url”:true,
},
}
}
Response
{
“status”:true,
“rtmp”:{
“main”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream2″,
“status”:int, //0 streaming failure 1 streaming success
},
“sub”:{
“enable”:int,
“url”:”rtmp://192.168.1.118:1935/app/rtmpstream3″,
“status”:int, //0 streaming failure 1 streaming success
}
}
}
RTMP streaming configuration is not supported
{
“status”:false
“rtmp”:false
}
Not support primary or sub stream configuration
{
“status”:false,
“rtmp”:{“main”:false,sub”:false}
}
Parameter error
{
“status”:false,
“rtmp”:{“main”:false}
}
7 System Control
7.1 System control settings
Set
Request:
{
“key”:int,
“system”:
{
“system_control”:”image reset”,//”image_reset” Image parameter reset, “factory_reset” Factory reset, “system_reboot” System reboot
“login”:”user:password”,
}
}
Response:
Set up successfully
Request:
{
“status”:true
“system”:
{
“system_control”:true
“login”:int // Return a key value, all json interactions must include the “key”:int item, otherwise the command will not respond
}
}
Setup failed
{
“status”:false
“system”:
{
“system_control”:false
“login”:false
}
}
7.2 System control acquisition
Get:
Request:
{
“key”:int,
“system”:
{
“device_name”:true,
“serial_number”:true,
“bootloader_version”:true,
“system_version”:true,
“app_version”:true,
“hardware_version”:true
“login”:”user:password”
}
}
Response:
Acquisition Success
{
“status”:true
“system”:
{
“device_name”:”FHD Video Conference Camera”,
“serial_number”:”123456789″,
“bootloader_version”:”V1.0.0″,
“system_version”:”V1.0.0″,
“app_version”:”V1.0.0″
“hardware_version”:”V1.0.0″
“login”:int // Return a key value, all json interactions must include the “key”:int item, otherwise the command will not respond
}
}
Acquisition Failed
{
“status”:false
“system”:
{
“device_name”:false,
“serial_number”:”123456789″,
“bootloader_version”:”V1.0.0″,
“system_version”:”V1.0.0″,
“app_version”:”V1.0.0″
}
}
7.3 Browser control
Support browser address bar side control and query camera parameters, the syntax is the same as the above syntax, the difference is that no login authentication, that is, no key or login that action directly according to the command set control can be.
Example 1: Query version number
http://192.168.1.189/cgi-bin/web.fcgi?func=get{“system”:{“app_version”:true}}
Example 2: Set zoom absolute position
http://192.168.1.189/cgi-bin/web.fcgi?func=set{“image”:{“abs ctrl”:{“zoom”:0}}}
Example 3: query ptz position
8. Auto-Tracking (if available)
8.1 Auto-Tracking Parameter Acquisition
Get:
Request
{
“ai”:true
}
or
{
“ai”:{
“enable”: true,
“peoplePos”: true,
“peopleRation”: true,
“switchTime”: true,
“boardDetectEn”: true,
“highLightTarget”:true,
“zoomLock”:true,
“PTLimit”:true
}
}
Get successfully, back to latest parameters
{
“ai”: {
“enable”: 1,
“peoplePos”: 2,
“peopleRation”: 6,
“switchTime”: 20,
“boardDetectEn”: 1,
“highLightTarget”: 0,
“zoomLock”: 1,
“PTLimit”: 1
},
“status”: true
}
Doesn’t support or abnormal paramters
{
“status”:false,
“ai”:false
}
Special preset position definition:
Preset no.255: home position;
Preset no.254: right-down limit position;
Preset no.253: left-up limit position;
Preset no.252: blackboard position
9 NDI Settings
9.1 NDI Parameter Settings
Request
{
“NDI”:{
“enable”:int,
“device name”:”HX”,
“channe name”:”Channel1″,
“groups”:”public”,
“multicast”: {
“enable”: 0,
“IP”: “239.255.0.0”,
“Mask”: “255.255.0.0”,
“TTL”: 1
},
“discovery server”:”192.168.1.42″
}
}
Response
Setting is successful, and NDI parameters are changed.
{
“NDI”:{
“enable”:1,
“device name”:”HX”,
“channe name”:”Channel1″,
“groups”:”public”,
“multicast”: {
“enable”: 0,
“IP”: “239.255.0.0”,
“Mask”: “255.255.0.0”,
“TTL”: 1
},
“discovery server”:”192.168.1.42″
},
“status”: true
}
NDI configuration is not supported
{
“status”:false
“NTP”:false
}
Parameter Error
{
“NDI”:{
“enable”:1,
“device name”:”HX”,
“channe name”:”Channel1″,
“groups”:”public”,
“multicast”: {
“enable”: 0,
“IP”: “239.255.0.0”,
“Mask”: “255.255.0.0”,
“TTL”: 1
},
“discovery server”:false
},
“status”: false
}
9.2 NDI Parameter Acquisition
Request
{
“NDI”:{
“enable”:true,
“device name”:true,
“channe name”:true,
“groups”:true,
“multicast”:true,
“discovery server”:true
}
}
或
{
“NDI”: true
}
Response
{
“NDI”:{
“enable”:1,
“device name”:”HX”,
“channe name”:”Channel1″,
“groups”:”public”
“multicast”: {
“enable”: 0,
“IP”: “239.255.0.0”,
“Mask”: “255.255.0.0”,
“TTL”: 1
},
“discovery server”:”192.168.1.42″,
},
“status”: true
}
Doesn’t Support NDI
{
“status”:false
“NDI”:false
}
10 SRT Settings
10.1 SRT Parameters
Request
{
“SRT”:{
“mode”:”listen”, //”listen”、”caller”、”rendezvous”
“listen”:
{
“enable”:int,
“port”:int,
“latency”:int, // Milliseconds
“encryption”: int,
“key length”: int, //32、24、16
“key”: “012345678”,
}
}
}
or
{
“SRT”:{
“mode”:”caller”, //”listen”、”caller”、”rendezvous”
“main caller”:
{
“enable”:int,
“ip”:”192.168.1.158″,
“port”:int,
“latency”:int, //milliseconds
“encryption”: int,
“key length”: int, //32、24、16
“key”: “012345678eee”,
“streamid”:”r=0″
},
“sub caller”:
{
“enable”:int,
“ip”:”192.168.1.158″,
“port”:int,
“latency”:int, // millisecond
“streamid”:”r=0″
“encryption”: int,
“key length”: int, //32、24、16
“key”: “012345678eee”,
“streamid”:”r=1″
}
}
}
or
{
“SRT”:{
“mode”:”rendezvous”, //”listen”、”caller”、”rendezvous”
“main rendezvous”:
{
“enable”:int,
“ip”:”192.168.1.158″,
“port”:int,
“latency”:int, //mililsecond
“encryption”: int,
“key length”: int, //32、24、16
“key”: “012345678eee”,
“streamid”:”r=0″
},
“sub rendezvous”:
{
“enable”:int,
“ip”:”192.168.1.158″,
“port”:int,
“latency”:int, //millisecond
“streamid”:”r=0″
“encryption”: int,
“key length”: int, //32、24、16
“key”: “012345678eee”,
“streamid”:”r=1″
}
}
}
Response
Setting successful, SRT parameters changed
{
“SRT”:{
“mode”:”listen”,
“listen”:
{
“enable”:1,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“main url”:”srt://192.168.1.158:1600?streamid=r=0″,
“sub url”:”srt://192.168.1.158:1600?streamid=r=1″,
}
},
“status”: true
}
or
{
“SRT”:{
“mode”:”caller”,
“main caller”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=0″
},
“sub caller”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=1″
}
},
“status”: true
}
SRT is not supported / Parameter error
{
“status”:false
“SRT”:false
}
10.2 SRT Parameter Acquisition
Request
{
“SRT”:true
}
Response
{
“SRT”:{
“mode”:”listen”,
“listen”:
{
“enable”:1,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“main url”:”srt://192.168.1.158:1600?streamid=r=0″,
“sub url”:”srt://192.168.1.158:1600?streamid=r=1″,
}
},
“status”: true
}
or
{
“SRT”:{
“mode”:”caller”,
“main caller”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=0″
},
“sub caller”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=1″
}
},
“status”: true
}
or
{
“SRT”:{
“mode”:”rendezvous”,
“main rendezvous”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=0″
},
“sub rendezvousr”:
{
“enable”:1,
“ip”:”192.168.1.158″,
“port”:1600,
“latency”:120,
“encryption”: 1,
“key length”: 32,
“key”: “012345678eee”,
“streamid”:”r=1″
}
},
“status”: true
}
SRT not supported
{
“status”:false
“SRT”:false
}
Documents / Resources
![]() |
AIDA Imaging HTTP Access [pdf] User Guide HD-NDI-200, HD3G-NDI-200l, HD-NDI-X20, HD-NDI-CUBE, HD-NDI-IP67, HD-NDI-MINI, HD-NDI-VF, HDNDI-TF, HD-NDI3-120, HD-NDI3-IP67, UHD-NDI3-300, UHD-NDI3-IP67, UHD-NDI3-X30, PTZ-X12-IP, PTZ-X20-IP, PTZ-NDI-X12, PTZ-NDI-X18, PTZ-NDI-X20, PTZ-NDI3-X20, PTZ4K-NDI-X12, PTZ4KNDI-X30, PTZ4K12G-FNDI-X30., Imaging HTTP Access, HTTP Access, Access |