# Range

## Function

This API is used to get parameter range for Stream > Encode page.

> Note:

> The Range provides reference information for client UI input limits and API request limits. When sending Get and Set requests, the parameters must be strictly limited according to the Range , otherwise the request may be rejected by the device.

> The following uses the Range request of the MainStream page as an example to describe this API.

## Request Message

None.

Sample:

    POST /API/StreamConfig/MainStream/Range HTTP/1.1

    {
        "version": "1.0",
        "data": {}
    }

## Response Message

### Parameter Description

#### Table 1

Parameter | Range | Type | Description
--- | --- | --- | ---
channel | “CH1”…”CH1x” “IP_CH1”…” IP_CH1x” “WIFI_CH1”…” WIFI_CH1x” The number of channels depends on the capabilities of the device. | string array | Each array bit represents a channel with a string.

#### Table 2

Parameter | Range | Type | Description
--- | --- | --- | ---
channel_info |  | JSON Object | Channel Information JSON show as follow Table 3
channel_max |  | int | Total number of channels on the device.
support_copy |  | bool | Whether the page support copy (only for NVR and DVR)
analog_max |  | int | Maximum number of analog channels on the device.
bandwidth |  | object | Information show as follow Table 8

#### Table 3

Parameter | Range | Type | Description
--- | --- | --- | ---
CH1 |  | Json Object | Information show as follow Table 4
… |  | Json Object |
IP_CH1 |  | Json Object |
… |  | Json Object |
WIFI_CH1 |  | Json Object |
… |  | Json Object |

#### Table 4

Parameter | Range | Type | Description
--- | --- | --- | ---
status | "Offline", "Online" | string | Channel online status, only for digital channels. Note: This field does not exist when the channel is online.
resolution | "320 x 240", "640 x 480", "1280x720", "1280x960", "1920x1080", "2304x1296", "2048x1520", "2592x1520"， "2592 x 1944", "3072 x 1728", "3840 x 2160" | string | Resolution The resolution is linked to the frame rate and the bit rate. If one of the values is passed, the other two must be followed by the value. This linkage rule can be broken by passing the device power value breakStreamLinkage.
fps |  | int | Frame rate
video_encode_type | "H.264",| "H.265"， "H.264+", "H.265+"， “MJPEG” | string | Video coding type
bitrate_control | "CBR", "VBR" | string | Stream type
video_quality | "Lowest", "Lower", "Low", "Medium", "Higher", "Highest" | string | Image Quality Note: This parameter is supported only when Type is the VBR option.
bitrate_mode | "Predefined", "UserDefined" | string | Stream mode
bitrate | 8,16,24,32,48,64,80,96, 128,160,192,224,256, 320,384,448,512,640,768, 896,1024,1280,1536,1792,2048, 3072,4096,5120,6144,7168,8192, 10240,12288,16384,100000 | int | Default stream size
bitrate_default |  | JSON Object | JSON show as follow Table 5
custom_bitrate |  | int | Custom stream size
audio |  | bool | Audio switch.
i_frame_interval |  | int | I-frame rate interval
i_frame_interval_rate |  | int | The I-frame interval is changed to x times the frame rate
etr |  | bool | Dynamic video switch (only for NVR)
etr_resolution | "320 x 240", "640 x 480", "1280x720", "1280x960", "1920x1080", "2304x1296", "2048x1520", "2592x1520"， "2592 x 1944", "3072 x 1728", "3840 x 2160" | string | Dynamic video resolution (only for NVR)
etr_fps |  | int | The frame rate of dynamic video recording.(only for NVR)
etr_bitrate | 8,16,24,32,48,64,80,96, 128,160,192,224,256, 320,384,448,512,640,768, 896,1024,1280,1536,1792,2048, 3072,4096,5120,6144,7168,8192, 10240,12288,16384,100000 | int | Default stream size for motion recording.(only for NVR)
etr_custom_bitrate |  | int | Custom stream size for dynamic video recording.(only for NVR)
etr_stream_type | “Alarm” | string | Stream type of dynamic video recording.(only for NVR)
etr_video_encode_type | "H.264", "H.265"， "H.264+", "H.265+"， “MJPEG” | string | Video encoding type of dynamic recording.(only for NVR)
etr_bitrate_control | "CBR", "VBR" | string | Type of dynamic video stream.(only for NVR)
etr_video_quality | "Lowest", "Lower", "Low", "Medium", "Higher", "Highest" | string | Image quality of dynamic video recording.(only for NVR) Note: This parameter is supported only when Type is the VBR option.
etr_bitrate_mode | "Predefined", "UserDefined" | string | Stream mode of dynamic video recording.(only for NVR)
etr_audio |  | bool | Audio switch.(only for NVR)
etr_i_frame_interval |  | string | I-frame rate interval of dynamic video recording.(only for NVR)
copy_ch | "digit", "analog", "wifi" | string | Flag that supports channel replication.(only for NVR, DVR)
enable_stream |  | bool | Mobile stream or fourth stream - switch.
video_encode_level | “Baseline”, “MainProfile”, “HighProfile” | string | Video coding level (IPC only) Note: H265 only has MainProfile.
resolution_mode | “SUPPORT_D1”, “SUPPORT_960H“, “SUPPORT_720P“, “SUPPORT_1080P“, “SUPPORT_3W“, “SUPPORT_720PCIF“, “SUPPORT_4W“, “SUPPORT_3W_TVI“, “SUPPORT_5W“, “SUPPORT_8W“, “SUPPORT_3W_HALF“, “SUPPORT_4W_HALF“, “SUPPORT_5W_HALF“, “SUPPORT_8WV2“, “SUPPORT_8WCVI“, | string | Simulated gun mode. Copy can be performed only when the mode is consistent. Digital channels are not supported.
rtsp_enable |  | bool | Determine the ipc parameters of the Rtsp protocol online and set them to grey.
video_encode_type_resolution_range |  | string | Resolution range
codeparam_setting_notice | "noticeRule_1", "noticeRule_2" | string | Two rules indicate whether to prompt a restart

#### Table 5

Parameter | Range | Type | Description
--- | --- | --- | ---
“1280 * 720” |  | JSON Object | Resolution value，JSON show as Table 6
... |  | JSON Object | Resolution value，JSON show as Table 6

#### Table 6

Parameter | Range | Type | Description
--- | --- | --- | ---
“1” |  | JSON Object | Frame rate value，JSON show as Table 7
... |  | JSON Object | Frame rate value，JSON show as Table 7

#### Table 7

Parameter | Range | Type | Description
--- | --- | --- | ---
default_value | 256,320,384,448,512,640,768, 896,1024,1280,1536,1792,2048, 3072,4096,5120,6144,8192 | int | Each fps corresponds to one bitrate default value.

#### Table 8

Parameter | Range | Type | Description
--- | --- | --- | ---
total_bandwidth |  | int | Total bandwidth (unit: kpbs)
remaining_bandwidth |  | int | Remaining available bandwidth (unit: kpbs)

> Tips:

> The response message of the Range request may not contain all the fields in the above table, and the fields not included indicate that the device does not support this parameter configuration.

Sample:

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
    	"result": "success",
    	"data": {
    		"channel_max": 16,
    		"support_copy": true,
    		"channel_info": {
    			"type": "object",
    			"items": {
    				"CH1": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"anr": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH2": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH3": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH4": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH5": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH6": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH7": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH8": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH9": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH10": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH11": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH12": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH13": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH14": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH15": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				},
    				"CH16": {
    					"type": "object",
    					"items": {
    						"record_switch": {
    							"type": "bool"
    						},
    						"stream_mode": {
    							"type": "string",
    							"items": [
    								"Mainstream",
    								"DualStream"
    							]
    						},
    						"prerecord": {
    							"type": "bool"
    						},
    						"copy_ch": {
    							"type": "string",
    							"items": [
    								"digit",
    								"analog",
    								"wifi",
    								"local",
    								"all"
    							]
    						}
    					}
    				}
    			}
    		}
    	}
    }

## Error Code

See Response Messages Body and Common error_code for more information.