This is an old revision of the document!
For HE4K-01 / HE4K-R4 / MVE-150 / MVE-100R / SME-01 / DME-02/03/04 use Z3-TI-http_api
For firmware version 5.X and higher
To read configuration variable, simply perform an HTTP GET to the URL
http://server_address/cgi-bin/control.cgi
with the body as given below.
The reponse will be in JSON format, giving the value of each variable.
To read global configuration variables, GET with this body:
ctrl=sys&chn=null
To read encoder channel configuration variables for channel 1, GET with this body:
ctrl=enc&chn=1
Python example code for reading configuration:
import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' global_cfg = requests.get(server_url, params='ctrl=sys&chn=null') print global_cfg.json() enc_cfg = requests.get(server_url, params='ctrl=enc&chn=1' ) print enc_cfg.json()
Sample output:
>>> print global_cfg.json() {u'ipmtu': 1500, u'vid_port': u'microhdmi', u'macaddr': u'40:cd:3a:04:f0:c3', u'logo_enable': u'off', u'wifi_exists': True, u'processor_id': u'QCS605', u'ddns_password': u'', u'model_enable': u'off', u'enc_current_preset': u'encoder', u'default_gw': u'192.168.0.1', u'disp_std': u'auto', u'session_id': u'---', u'ddns_provider': u'freedns', u'ptp_role': u'auto', u'timezone': u'CST6CDT,M3.2.0,M11.1.0', u'MODEL': u'Z3-Q603-HD', u'opstate': u'RUNNING', u'hwversion': u'Z3-Q603-HD', u'ddns_enable': u'off', u'disp_input': u'primary', u'board_id': u'0xFF10', u'termserve_remote_enable': u'on', u'hwserial': u'30010110194010011', u'console_enable': u'on', u'enable_ptp': u'false', u'camera2_if_type': u'Unused', u'local_netmask': u'255.255.255.0', u'ret': u'0', u'logo_width': 319, u'MIC_analog_gain_db': 5, u'camera1_if_type': u'Sony_LVDS', u'opmode': u'encoder', u'syspassword': u'', u'local_dnsip2': u'0.0.0.0', u'ddns_hostname': u'', u'use_dhcp': u'0', u'enc_vivpss_mode_enable': u'off', u'pe3': u'', u'z3_termsrv': u'enabled', u'MICL_analog_gain_db': -20, u'preview_auto_start': u'1', u'pe7': u'', u'logo_height': 156, u'sensor_serial': u'30010310194010011\n', u'ddns_username': u'', u'eth_speed': u'AUTO', u'nfs_enable': u'off', u'nfs_server': u'192.168.1.6', u'z3_avmux': u'enabled', u'nmea_enable': u'off', u'z3_sntp': u'enabled', u'eth_duplex': u'AUTO', u'z3_fec_enc': u'enabled', u'z3_webproxy': u'enabled', u'enc_adv_setting': u'off', u'do_autostart': 1, u'enc_channels': u'1', u'pe8': u'', u'local_dnsip': u'192.168.0.1', u'local_ip': u'192.168.0.14', u'pe4': u'', u'pe5': u'', u'pe6': u'', u'diff_serve': 0, u'pe0': u'encoder', u'pe1': u'', u'pe2': u'', u'nfs_server_root': u'/c/media', u'enable_snmp': u'false', u'fpgafileglob': u'', u'enable_sntp': u'true', u'sysdevicename': u'Z3-Q603-HD', u'sntp_servers': u'pool.ntp.org', u'zfinder_enable': u'on', u'model_name': u'Z3-Encoder', u'hw50serial': u'50010110194010011', u'visca_present': u'true'} print enc_cfg.json() {u'vmulticastdest': u'225.1.2.3', u'tslowlat': u'on', u'klvmuxmethod': u'sync', u'srt_destAddr': u'192.168.0.6', u'vcrop_height': 1080, u'zixifecblock': u'50', u'telopcharsize': u'32', u'source_status_str': u'+CAMERA 1920x1080p 60.00 fps\n', u'vratectrl': u'cbr', u'rotate_angle': 0, u'zixisession': u'test', u'asource': u'CAMERA', u'aport': u'8700', u'pmtpid': 31, u'authonoff': u'off', u'srt_encrypt': 0, u'vcodec': u'h265', u'klvmode': u'sdi', u'auxonoff': u'off', u'channel': 1, u'mounts': u'', u'vcrop_width': 1920, u'vcrop_x': 0, u'vcrop_y': 0, u'amulticastdest': u'225.1.2.3', u'vprofile': u'high', u'klvsrc': u'/dev/gv7601.0', u'auth_passwd': u'password', u'teloplocation': u'top_left', u'gps_overlay_device': u'/dev/ttyAMA0', u'ret': u'0', u'klvserialbaud': u'115200', u'rtsp_auth_password': u'admin', u'zixirateadjen': u'on', u'zixiauthen': u'off', u'vinterlacemode': u'combine', u'vgopsize': 60, u'mmulticastdest': u'225.1.2.3', u'vcrop_enable': u'off', u'klvenable': u'off', u'preset': u'actv_preset', u'mport': u'8800', u'auth_user': u'user', u'gps_overlay_enable': u'off', u'zixioverhead': u'15', u'tsrate': u'5000K', u'enc_status': u'RUNNING', u'pcrinterval': 50, u'aptspcr': 250, u'filesize': u'1024M', u'klvbrate': u'1000', u'acodec': u'fdk_aaclc', u'lowdelay_opt': u'off', u'apid': 120, u'zixilatency': u'500', u'rtsp_auth_enable': u'off', u'srt_mode': 0, u'klvpid': u'35', u'nfstrength': u'0', u'vbitrate': u'4M', u'rtsp_auth_username': u'admin', u'zixiuser': u'user', u'gps_overlay_location': u'top_right', u'vprotocol': u'rtsp', u'feconoff': u'off', u'vdelay': 1000, u'vsource': u'CAMERA', u'fprefix': u'MOV1_%C', u'telopenable': u'off', u'teloptext': u'Z3-Q603-HD', u'storage': u'/media/sda1', u'vquality': u'balanced', u'asamplerate': u'1', u'vgdr': u'off', u'rotate_enable': u'off', u'avmux_index': u'streaming', u'abitrate': u'128000', u'vpid': 221, u'feccol': 5, u'gps_overlay_char_size': u'32', u'vframeratediv': 1, u'pipenable': u'off', u'vres': u'follow_input', u'pcrpid': 521, u'aenable': u'off', u'apair': 0, u'piplocation': u'top_right', u'rtmp265_enable': u'off', u'srt_pass': u'password1234', u'vdest': u'192.168.0.6:8600', u'fecrow': 1}
Description: Enable audio channel
Possible values: yes, no
Description: Audio encoder algorithm selection
Possible values: dsp_aaclc, fdk_aaclc, fdk_aache, fdk_aache_v2
Description: Audio encode bitrate
Possible values: Depends on codec; in units of bits per second
Description: Audio sample rate
Possible values: 48000, 44100
Description: Select audio input
Possible values: MICL (microphone, line input levels)
MIC (unpowered microphone levels) HDMI (microHDMI input, for HE4K-DCK/FV4K-13A only) HD-SDI (SDI input, for DME-10/FSDI-DCK/FSDI-13A only)
Description: Audio PID for transport stream.
Possible values: 32 to 8191 - must not conflict with other PID assignments.
Description: Destination UDP port for RTP audio
Description: For transport stream modes only – intial PTS to PCR offset for audio, in milliseconds
Possible values: 100 to 2000
Description: Password for RTMP authentication.
Description: Username for RTMP authentication.
Description: Enable or disable RTMP authentication. Default: off Possible values: on, off
Description: Encoder channel number
Possible values: 1, 2, 3
Description: Column count for ProMPEG.
Possible values: integer greater than 1
Description: Enable ProMPEG if supported.
Possible values: on, off
Description: Row count for ProMPEG.
Possible values: integer greater than 1
Description: Size of TSFILE or AUX file recording, in bytes.
A “K” suffix indicates kilobytes (thousands of bytes/second).
A “M” suffix indicates megabytes (millions of bytes/second).
Description: Relative filename for TSFILE or AUX file recording. Note that “fprefix” does NOT include the absolute media path – the “storage” parameter is the proper place to specify the absolute media path.
Absolute path to mounted media device (e.g. /media/sda1/)
For MP4 recording only. Possible values: normal, streaming
normal means MOOV atom at the end of file.
streaming means MOOF atoms interspersed throughout the file, which is more tolerant of errors and truncated files.
streaming is recommended for most recording scenarios. Only select “normal” if you want conventional MOOV atom at the end of file, if some legacy tool or decoder requires it.
OSD overlay text character size in pixels
Possible values: 16, 32, or 64
Enable or disable telop (i.e. OSD overlay of text).
Possible values: on, off
Where to overlay text in the encoded video
Possible values: top_left top_right top_center bottom_left bottom_right bottom_center
Text string for OSD overlay
Description: Distance between I frames (key frames) in GOP sequence
Possible values: 1 through 240
Description: Video bitrate in bits per second.
Possible values: A “K” suffix indicates kilobits (thousands of bits/second).
A “M” suffix indicates megabits (millions of bits/second).
Note: In UDP transport stream case, the tsrate should be set
higher than the vbitrate, with at least 15% margin.
Description: Video maximum burst size in milliseconds.
Possible values: 100 to 2000
Description: Destination URL address for encoded bitstream. May be interpreted differently depending on “vprotocol” setting.
For UDP and RTP transports:
client_ip:client_port
For RTMP transport:
server_ip[:server_port]/application/streamname
Description: Divide video input frame rate by this number to get encode frame rate.
The encoder will discard (frameratediv-1) out of (frameratediv) frames.
Possible values: 1, 2, 3, 4, 5, 6
Description: Enable or disable Gradual Data Refresh. Reduces I-frame size (reduces latency). At lower bitrates, a horizontal rolling artifact may be visible.
Possible values: on, off
Description: Specifiec which codec to encode with.
Possible values: h265, h264, mjpeg
Description: H.264 profile (see https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles for full description)
Possible values: baseline, main, high
Description: Protocol used to transport the encoded bitstream.
Possible values: rtp, rtmp, udp, asi, tsfile, mts, tsrtp
Description: Set balance between low latency, and higher quality+bitrate compliance.
Possible values: lowlat, balanced, high
Description: Rate control mode for encoder.
Possible values: cbr, vbr
vbr mode may be burstier than cbr.
Description: Video resolution
Possible values: follow_input preserve video source resolution, no resize
WxH resize to width W and height H
Description: Video input from which encoder will source its video
Possible values: Board-dependent
Description: Enable PIP of channel 2 on channel 1 encode. Only available on FV4K/FV2K/FSDI
Possible values: on, off
Description: Sets the location of the PIP on channel one. Only available on FV4K/FV2K/FSDI
Possible values: top_left, top_right, bottom_left, bottom_right
Description: Sets the interlaced mode for the video input
Possible values: combined, separated (H265 only)
Description: video multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions
Possible values: valid multicast addresses
Description: audio multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions
Possible values: valid multicast addresses
Description: enables/disables rtsp authorization for stream
Possible values: on, off
Description: username for rtsp authorization
Possible values: alpha numeric string
Description: password for rtsp authorization
Possible values: *
The following parameters only apply to transport stream encoding (transport is set to udp, asi, tsfile, mts, or tsrtp).
Description: Video PID for transport stream.
Possible values: 32 to 8191 – must not conflict with other PID assignments
Description: Audio PID for transport stream.
Possible values: 32 to 8191 – must not conflict with other PID assignments
Description: PCR PID for transport stream.
Possible values: 32 to 8191 – must not conflict with other PID assignments
Description: PMT PID for transport stream.
Possible values: 16 to 31 – must not conflict with other PID assignments
Description: Transport stream total transport rate in bits per second.
Possible values: The 'K' suffix indicates kilobits (thousands of bits/second). The 'M' suffix indicates megabits (millions of bits/second).
Note: In UDP transport stream case, the tsrate should be set higher than the vbitrate, with at least 15% margin.
Description: Low latency transport stream mode (VBR).
Possible values: off, on
Describe: Enable AUXillary file recording in UDP mode – allows simultaneous UDP streaming and TS file recording on the same channel. Only valid if transport is UDP and tslowlat is off
The path to storage is set by the “storage” parameter.
The filename is set by the “fprefix” parameter. The default value is “MOV1_%F_%T”. The “%F” specifier inserts a date stamp, and the “%T” specifier inserts a time stamp.
The recording file size is set by the “filesize” parameter. When the file reaches this size, a new file will be created.
Description: Bitrate to allocate in transport stream for KLV data.
Description: Enable KLV capture from SDI, UART or debug file, if supported.
Possible values: off, on
Description: Type of KLV source device, whose path is specified in klvsrc
Possible values: sdi, serial, file
Description: If klv_mode is serial, specify the baud rate
Possible values: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Description: Select synchronous or asynchronous transport stream KLV multiplexing, as specified in MISB ST 1402
Possible values: sync, async
Description: PID for KLV data in transport stream
Description: Source device for KLV metadata
Description: Interval between PCR packets in milliseconds.
Possible values: 30 - 100
Python example code for starting/stopping all channels:
import requests, json import sys, getopt actionname='StartChannel' server_url='http://192.168.0.120' control_cgi_url = server_url + '/cgi-bin/control.cgi' payload = 'ctrl=sys&chn=null' sysctrl = requests.get(control_cgi_url, params=payload) j = sysctrl.json() print j enc_channels_string = j['enc_channels'] opmode = j['opmode'] enc_channels = enc_channels_string.split( ',' ) print 'enc_channels', enc_channels, 'opmode', opmode channel_list = enc_channels for channel in channel_list : # Remove leading C if channel[0:0] == 'C': channel = channel[1:] print actionname, ' ', opmode, 'channel', channel payload = 'action='+actionname+'&'+ 'chn=' +channel+'&' + 'loadfromdb=true'; headers={'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} r = requests.post(control_cgi_url, data=payload, headers=headers) print r.text
The “loadfromdb=true” parameter will load the current settings from the database.
If you omit the loadfromdb parameter, *none* of the database settings will be used – any parameters you do not supply, will be set to default values.
For example, this is what a StartChannel request from the web server looks like:
action=StartChannel&chn=1&vsource=&vres=follow_input&vcodec=h265&vgdr=on&vprofile=high&vratectrl=cbr&vbitrate=2M&vframeratediv=1&vgopsize=60&vprotocol=rtsp&vdest=192.168.0.6:8600&storage=&fprefix=MOV1_%F_%T_&vpid=221&vdelay=1000&pcrpid=521&pcrinterval=50&pmtpid=31&tsrate=3000K&tslowlat=on&feconoff=off&fecrow=1&feccol=5&zixioverhead=15&zixiauthen=off&zixisession=test&zixiuser=user&aenable=on&asource=MICL&acodec=fdk_aaclc&abitrate=128000&asamplerate=48000&aport=8700&apid=120&aptspcr=250&klvenable=off&klvmode=sdi&klvsrc=/dev/gv7601.0&klvpid=35&klvbrate=1000&authonoff=off&auth_user=user&auth_passwd=password&auxonoff=off&filesize=1024M&telopenable=off&teloptext=ENCDEV&teloplocation=top_left&telopcharsize=32&vquality=balanced
Add new channel tab. Check the channel number is valid or not, for e.g. the channel number can be max (1 to 4)
and if so then we check whether the preset values are available for this channel number, then we will be reading from the PRESET_TABLE of the database.
If not, then we will adding the default values for this channel.
Insert decoder history in the database
Input : channel number, URL
Output : Add the information in the decoder history table in the database
Input : read the camera index ( value can be 1 or 2)
Output : provide the camera information. if camera index is 1 then check whether camera type is (Visca/tau/boson)
If camera index is 2 then check whether camera type is (Visca/tau/boson/tamarisk/CameraLink_CVBS/sdi)
Send control commands to camera.
Only one command can be sent at a time; the list below are the only supported VISCA commands through the HTTP API. To use VISCA commands that are not listed, usage of the TCP socket can be used to send those VISCA commands.
API Format:
action=CameraControl&interface=Visca&command=visca_command&cam_index=1 interface possible values: Visca, Tamarisk, Tau2, Boson, Genlock (default: Visca)
example:
Commands without value assignments
action=CameraControl&command=dzoom_off&cam_index=1
Commands with value assignments
action=CameraControl&command=set_monitor_mode 1080p-59.94&cam_index=1
The Visca commands use the same syntax as the serial menu “V” command, as shown below
For the most current list of VISCA commands supported press “V” from the Serial/SSH session of the Serial Menu.
auto_icr_disable auto_icr_enable cam_control_inquiry cam_custom_recall cam_custom_reset cam_custom_set chroma_get_suppress chroma_suppress Set Chroma Suppression (0=none, 1 to 3=chroma supression strength) clear_if color_gain Set Color gain (0=60%, 14=200%) color_get_gain color_get_hue color_hue Set Color hue (0=-14 degrees, 14=+14 degrees) debug_rx dzoom_combine_mode dzoom_direct D-Zoom Position (0x00 to 0xeb) * Enabled during Separate mode dzoom_off dzoom_on dzoom_separate_mode dzoom_stop dzoom_super_res dzoom_tele_var p = 0 (Low) .. 7 (High) * Enabled during Separate Mode dzoom_wide_var p = 0 (Low) .. 7 (High) * Enabled during Separate Mode dzoom_x1_max eflip_off eflip_on ext1_func_inquiry ext2_func_inquiry ext3_func_inquiry focus_auto focus_direct focus pos Min. 0x1000 Over Inf 0x2000 10m 0x3000 5m 0x4000 3.3m 0x5000 2.5m 0x6000 2m 0x7000 1.7m 0x8000 1.5m 0x9000 1m 0xa000 50cm 0xb000 30cm 0xc000 15cm 0xd000 6cm 0xe000 1cm focus_get_mode focus_get_pos focus_manual focus_near_limit focus near limit Min. 0x1000 Over Inf 0x2000 10m 0x3000 5m 0x4000 3.3m 0x5000 2.5m 0x6000 2m 0x7000 1.7m 0x8000 1.5m 0x9000 1m 0xa000 50cm 0xb000 30cm 0xc000 15cm 0xd000 6cm 0xe000 1cm focus_stop focus_tele_std focus_tele_var p = 0 (Low) .. 7 (High) focus_toggle focus_wide_std focus_wide_var p (0 (Low) .. 7 (High)) get_low_delay_mode Get low delay mode: 0 - normal, 1 - low delay get_monitor_mode get_monitor_mode: Get video mode of camera output help high_sensitivity_off high_sensitivity_on icr_mode modes: auto on off threshold [0-255] lens_control_inquiry lens_get_temp lr_reverse_off lr_reverse_on other_inquiry power_inquiry power_off power_on register_read Read internal register. register_write Write internal register. * Note: To make register changes effective, run power_off and power_on set_address set_low_delay_mode Set low delay mode: 0 - normal, 1 - low delay set_monitor_mode Set monitor mode. List of modes: 1080p-25 720p-50 720p-59.94 2160p-25 2160p-29.97 1080p-29.97 1080p-59.94 1080p-50 slow_shutter modes: on off limit [0-255] trace enable (0=off, 1=on) version_inquiry wb_auto_mode wb_autotrace_mode wb_get_bgain wb_get_mode wb_get_mode_name wb_get_rgain wb_indoor_mode wb_manual_bgain_direct Set Manual WB BGain (0..255) * Enabled during Manual WB mode wb_manual_bgain_reset wb_manual_mode wb_manual_rgain_direct Set Manual WB RGain (0..255) * Enabled during Manual WB mode wb_manual_rgain_reset wb_onepush_mode wb_onepush_trigger wb_outdoor_auto_mode wb_outdoor_mode wb_sodium_lamp_auto_mode wb_sodium_lamp_fixed_mode wb_sodium_lamp_outdoor_mode zoom_direct pos Min. 0x0000 Max. 0x4000 (In Separate mode) Max. 0x4000 (In Combine mode and DZoom=Off) Max. 0x59C0 (In Combine mode, DZoom=Super Resolution Zoom, and monitoring mode QFHD) Max. 0x6000h (In Combine mode, DZoom=Super Resolution Zoom, and monitoring mode FHD or less) Max. 0x7AC0h (In Combine mode and DZoom=On) zoom_get_pos zoom_stop zoom_tele_std zoom_tele_var p = 0 (Low) .. 7 (High) zoom_wide_std zoom_wide_var p (0 (Low) .. 7 (High))
With dual VISCA camera supported added we need to tell the API which camera we want to talk to. this is done with cam_index
The values accepted are either 1 or 2
delete the decoder history
input : channel number
output : Delete the channel number from the DECODER_HISTORY_TABLE of the database
delete the channel tab and update the PRESET_TABLE of the database.
delete each row of the preseting value of encoder or decoder based on the get_opmode from the PRESET_TABLE
Output: Disconnects the Wifi Network
Encoder channel to apply dynamic command to.
var
Variable to modify dynamically. Possible values: vratediv, vrate, gop, analog_gain, telop_text, pip_enable, pip_location, startmulticast, stopmulticast
Value to set dynamic variable to.
chn: Encoder channel number
dec: Device name as in storage
Output: un mounts the device to eject in safe
moving the preset value from the existing table to a new table and erasing the existing table
create a z3export.db and copy the presetting value of encoder or decoder based on the get_opmode of the PRESET_TABLE
Erase configuration database.
Optional arguments: reset_ip (default value:0): 1=clear IP settings, 0=keep IP settings
This command erases the config database. To generate the factory settings, you must reboot the system, either using the “RestartBoard” action or power-cycling the system.
mnt_point: storage media device node path which needs to be formated
file_system: File system type to be used with mkfs
Output: Formats the given media in FAT filesystem format and mount it
Read the value of color table using the system call and pixel format
from the fpga.
Get the camera tab index the values are (1 / 2) and camera type. The camera types are (Visca / tau / boson / tamrisk)
if camera index is 2 , then the camera type (Visca / SDI)
Read the camera tab index.
Based on the camera index and camera type the corresponding html file will be read. The html files are located in the /opt/webgui/*.html
The html files are visca.html / flexio.html
return the encoder status
input : channel_number
Output : The encoder status can be running / couldn't deduct input on camera / idle / Stopped.
The encoder status values are stored in this path /tmp/enc_1_status.
Get the sensor id and based on the sensor id, we read the video inputs from the VIDEO_INPUT_TABLE.
The video input table has the sensor id, video port (which is CAMERA1/ CAMERA2) the camera type (SONYLVDS/ LT6911 / MIPI) and so on.
retrieve the wifi password.
Input
ssid: read Wifi Access point name
Output: Returns the Wifi password, generally it will be stored in this path /var/run/wpa_supplicant.pid.
Input : data
read the data: Query Ins
Output: Returns the YawAngle, PitchAngle or RollAngle
Input : data is parsed using JSON format in PtzAuxiliary. Here we read the auxillary ID and auxillary is set or not.
Output: Save the auxillary id and set
Load the active preset value from the PRESET_TABLE and update
Read the current preset values, which is encoder/decoder and number of channels based on the device type.
for e.g if the device is FV4K_DCK_15 / FV4K_13A / FV2K_13A then the maximum preset encode channels will 1 and 2.
Output : update the current_preset values in the STATE_TABLE in the database.
set the password value for login user.
Json data wich contains nonce and name of the user
Output: Remove digest entry for this user
Add/Update overlay
Encoder channel to add overlay to.
Index to map overlay to.
Type of overlay to be used possible values: text or png.
In the case of text overlay this would be the source text for png overlay this is the path to the png on the encoder. Images must be uploaded to board to be used.
This is the location of the overlay. Possible values: 'top_left', 'top_right', 'top_center', 'bottom_left', 'bottom_right', 'bottom_center', 'x,y' (negative numbers not supported for x or y)
For text overlay this is the character size. Possible values: 16,32,64
This will set the layer for the overly higher numbers will overlay over lower numbers if overlapping.
Sets the transparency of the text. Possible values: 0-255
Encoder channel to remove overlay from.
Index of overly for this channel.
Send absolute move command to the PTZ.
parse the data using json format and retrieve the mode, position and speed value. The mode values can be PanTilt / Zoom / Both.
Output: Updates the PTZ speed and position value for absolute move
clear the Ptz preset values
parse the data using json format and retrieve the profile token, preset token, username and token.
Output: remove the PTZ preset value for the username, token
Pan to the left at half speed
action=PtzContinuousMove&data={"PanTilt":{"x":-0.5,"y":0},"idx":0}
Pan to the right at half speed
action=PtzContinuousMove&data={"PanTilt":{"x":0.5,"y":0},"idx":0}
Tilt down at max speed
action=PtzContinuousMove&data={"PanTilt":{"x":0,"y":1},"idx":0}
Get the authentication user name
parse the data using json format and retrieve the profile token, preset token, username and token.
Output: set the preset value of Ptz.
Get the new tour spot
parse the data using json format and retrieve the profile token, preset token, mode, angle and speed. The mode values are Pan / Tilt
Output: set the new tour spot
move the Ptz to the input position
parse the data using json format and retrieve the mode, angle and speed. The mode values are Pan / Tilt
Output:Updates the PTZ position value
Preset the Ptz based on the value parsed from the json object.
parse the data using json format and retrieve the value.
if the data value 0
remove the preset,
if the data value 1
set the preset
if the data value 2
Goto the preset
Output: Remove or updates the PTZ position based on the data value.
Get the ptz status degree value.
parse the data using json format and querry from the ptz for position of x, y and z value.
Output: Based on the ptz query we will be knowing whether its Tilt Angle or Pan Angle
Remove the ptz tour spot
parse the data using json format and retrieve the profile_token, tour_token, and row_index
Output: Remove the existing tour spot from the ONVIF_PtzTourSpots table in the database
Get the user information which provides user name, user level, and nonce.
parse the data using json format and retrieve the profile_token, preset_token, and username, and token
Output: Sets the PTZ preset value for current user
Get the user information which provides user name, user level, and nonce.
parse the data using json format and retrieve the profile_token, preset_token, and username, and token
Output: Start the new Ptz tour
Stop pan and tilt
action=PtzStop&data={"mode":1,"idx":0}
Remove / delete the jobs from the schedule.
Read the job index and job name
Number of rows of the schedule job.
Delete the jobs in the /opt/config/z3schedules/root/ in the system and also update in the SCHEDULE_TABLE in the database.
Reboot the board
Save camera-related settings below.
Description: Set camera zoom
Possible values: 0 (wide) to 0x7ac0 (full zoom)
Possible values: auto. indoor, outdoor, onepush, autotrace, manual, outdoor_auto,
sodium_lamp_auto, sodium_lamp_fixed, sodium_lamp_outdoor
Possible values: Range from 0 (60%) to 14 (200%)
Possible values: Range from 0 (60%) to 14 (200%)
Possible values: 0=none, 1, 2, 3
Possible values: 0 to 255
Possible values: 0 to 255
Possible values: 0, 1
Description: Set manual camera focus distance Possible values: 0x1000 to 0xf000
Description: Set focus mode
Possible values: auto, manual
saves the camera boson settings
reads the color pallete value
Save the camera DRS tamarisk settings in the CAMERA_BOSON_TABLE in the database
saves the camera DRS Tamarisk settings
reads the color pallete value
Save the camera DRS tamarisk settings in the CAMERA_DRS_TAMARISK_TABLE in the database
saves the camera Link settings
reads the pixel format and color table value
Save the camera DRS tamarisk settings in the CAMERALINK_TABLE in the database
Saving the CameraLx settings value and update in the CAMERA_LX_TABLE in the database
read the value of exposure mode, shuter speed , exposure component settings, whitebalance, ISO, Color Temp, NtscPalSelection, MovieSteadyMode
used in the camera settings
saves the camera TAU settings
reads the color pallete value from this path /tmp/currentlut*.txt and also reads the active color table
Save the camera TAU settings in the CAMERA_TAU_TABLE in the database
Read the values from the schedule tab and save the jobs
The data contains multiple values, such as
enable/disable of schedule
Name of the job
Function are (Start-Encoder / Stop-Encoder / Snapshot / PTZ Preset / PTZ Tour / Reboot)
Channel (Ch1 / Ch2 / Ch3 / Ch4)
Options about the time, which can be (Every Minute / hours / day / Week/ Month/ Yearly / custom )
Number of rows of the schedule job.
Save the jobs in the /opt/config/z3schedules/root/ in the system and also update in the SCHEDULE_TABLE in the database.
check whether the mode is decoder or encoder using get_opmode()
save the encoder preseting value in the PRESET_TABLE
save the decoder preseting value in the PRESET_TABLE
Output : Update state setting table in the database
Save current settings to non-volatile memory, so they will be used on the next startup.
Control advanced settings display on WebUI.
Possible values: off, on
set the password for the Wifi network
read the password to connect with the WIFI network
Enable/disable the password to connect with WIFI
Output: Set the wifi password and password enable flag and check if the wlan0 status in in Connected or AP
Set the analog mic decibal value
analog gain decibal value where the (Range are -97 to 30)
Output : update the audio gain value in the AUDIO_INPUT_TABLE in the database
Set the value of color table and pixel format.
The value for the color table and pixel format
The option can be color table or pixel format.
Output : Update the value for the color table and pixel format in the CAMERALINK_TABLE in the database.
set the console value as ttyAMA0 or none.
“on” to enable or “None” to disable the console device for the log prints
Output: Set the console value.
Dynamic DNS settings.
Set logging level. The setting is persistent.
Possible values: 0=None, 1=Error, 2=Information, 3=Diagnostics, 4=Codeflow, 5=Dataflow
Note: Dataflow debug is for debug only, and not recommend for normal system operation.
Set the device name
Read the device name
Output: update new device name in the STATE_TABLE in the database
Controls composite output (passthru video from camera)
Set display standard for composite output
Possible values; auto, ntsc, pal
set the DSCP configuration value
Read the DSCP configuration value. The values are (Expedited Forwarding / Multimedia Conferencing / Multimedia Streaming / Low-Latency Data ) and so on.
Output :
Set the DSCP configuration value and update in the STATE_TABLE of the database.
Set the fpga value.
read fpga value, the values can be (boson/cvbs/tamarisk/tau2)
Output : update fpga value in the STATE_TABLE of the database
IPv4 adresss
IPv4 netmask
IPv4 default gateway
DNS server primary
DNS server secondary
Controls use of DHCP or static IP
Possible values: 1 (DHCP enabled), 0 (DHCP disabled, use static IP)
Control automatic stream start after bootup
Possible values: 1 = do autostart 0 = do not autostart
Control appearance of advanced settings on WebUI
Possible values: off, on
Control Gigabit Ethernet auto-negotiation allowed speeds
Possible values: AUTO, AUTO-100, 1000, 100, 10
Control Ethernet auto-negotiation allowed duplex
Possible values: AUTO, FULL, HALF
Control Ethernet IP Maximum Transmission Unit (MTU) size in bytes
Possible values: 576 to 1500
Set the maximum login limit.
mximum number of login limit. The limit is in range of ( greater than 2 and less than 100 )
Login window period, the value are considered as seconds. Max login attempts can be reached (Greater than 59 and less than or equal to 32768)
Locout interval value are mentioned in seconds value, which is used when maximum number of login limit is reached. The valuare ranges are ( -1 to 32768)
Login timeout
output: Updates the system login logout limits in the STATE table of the database
Set the nfs value in the database.
enable/disable nfs
provide the nfs server ip address. Default is 192.168.1.6
provide the server root path / location.
Output: update nfs information in the STATE_TABLE in the database
Set the SNMP value in the database
enable/disable SNMP
enable/disable power trap
enable/disable Input loss trap
enable/disable Input recover
enable/disable temperature high trap
enable/disable temperature recover trap
trap hosts value is the ipaddress. Default ip address value is 192.168.0.6
hiigh temperature default value is 30,
nominal temperature default value is 30,
enable/disable SNMP
SNMP v3 encrypt value
z3user
z3password
snmp v3 usrpro default value is md5
z3password
decrypt value
default value for engineid is 0.
Output : Update SNMP values in the SNMP_TABLE of the database.
Enable/Disable SNTP.
NTP server or list of NTP servers.
Linux TZ database value for Timezone.
Set the GPS NMEA data value in the database
enable/disable the NMEA
Output : Update the NMEA value in the STATE_TABLE of the database.
Enable/Disable ONVIF.
Enable/Disable ONVIF persistent audio channel.
Maximum ONVIF profiles to allow (1 or 2).
enable/disable video motion detection
sensitivity value required for vmd ( value will between 1 to 100)
enable/diable video motion and too darkness zone
crop width for VMD and too_darkness
crop height for VMD and too_darkness
crop startx for VMD and too_darkness
crop starty for VMD and too_darkness
enable/disable too darkness
threshold value for too darkness ( value will between 1 to 100)
channel number (1 / 2)
Output : update rtsp value in the STATE_TABLE and ONVIF_VMD_TD_TABLE of the database
Set the RTSP value in the database
read rtsp port and the default value is 554
Timeout value required for the rtsp connection
Output : update rtsp values in the STATE_TABLE of the database
Set the term server value in the database
Enable/Disable remote access to terminal server. Possible values are : on, off
Enable/Disable shared access to terminal server. Possible values are : on, off
Output : Update rtsp values in the STATE_TABLE of the database
Set the video group configuration, and update in the database and change the active settings dynamically.
Is the camera index, the values are ( 4K. DME-20, HE2160-RPS ) and so on.
enable/disable noise reduction.
enable/disable crop region.
===
crop_x ===
crop rectangle x value
===
crop_y ===
crop rectangle y value
crop rectangle width value
crop rectangle height value
Output : Update the value in the VIDEO_GROUP_TABLE in the database.
Set the view port for the decoder and update in the database.
Decoder Channel number
viewport settings. The default value is fit.
Output: Updates the viewport settings for the given decoder instance in DECODER_TABLE of database
Set the vpss value in the database.
Enable or disable the VPSS mode
Output: Update the VPSS enable or Disable in STATE table of the database
Set the Wifi network and update in the databse.
ssid: Wifif SSID
psk: Wifi password
wifi_client_local_ip: Local IP addres ragne for WIFI network
wifi_client_local_local_netmask: Subnet mask to be used with Wifi network
wifi_client_default_gw: Default Gateway to be used with Wifi Network
wifi_client_use_dhcp: DHCP server to be used with Wifi network for DNS resolutions
Output: Updates the wifi network Access Point settings in State table of database
Possible values: off, on
Transition the encoder channel into the running state.
Once you start the channel, it will not transmit data until the
video input is detected.
St
Transition the encoder channel into the stopped state.
Read the current temperature status of cpu and lense.
Initially it checks the file cur_temp in the /tmp/ folder. If exist then it reads from the file
else it reads from the system call.
Output : Send the temperature status to update in the webui.
is password required or not.
Update the state of the required web login value in the STATE_TABLE of the database.
update the ptz value in the database.
parse the data using json format and retrieve the video source and row information .
Output: Updates the PTZ value in the ONVIF_Ptzs table of the database.
update the ptz preset value in the database.
parse the data using json format and retrieve the video source and row information .
Output : Update the row value in the PTZ_Preset table of the database
update the ptz tour spots value in the database.
parse the data using json format and retrieve the like ProfileToken, PresetTourToken, RowIndex, PresetDetailToken, PresetDetailHome, StayTime, pan,tilt, zoom, pspeed, tspeed and zspeed.
Output : Update the row value in the ONVIF_PtzTourSpots table of the database
Control serial port terminal server for VISCA
Possible values: client, server
Possible values: clearchannel, telnet
Local TCP port (for server mode)
Remote IP address (for client mode only)
Remote TCP port (for client mode only)
Possible values: 9600, 19200, 38400, 57600, 115200
username: name of the user
user level: user levels 0-7 to define the roles
password: user credentials
Output: Add the new user in ONVIF_users table of database
data: Name of the user
Output: User will be removed in ONVIF_users table of database
data: Name of the user
Output: User level will be removed in ONVIF_users table of database
data: Name of the user
Output: User password will be removed in ONVIF_users table of database
Get the ethernet 8021x infromation and
read the ethernet 8021x infromation such as certificate authority (ca_cert_status), private key status and its value, private certificate status and its value, and so on.
Provide the 8021x information in the eth8021x_args array to the webgui.
Get the cron jobs infromation from the SCHEDULE_TABLE of the database and
read the schedule job, enable, function, function arguements, type, cron command and so on.
Provide the scheduler table information in the json_tbl array to the webui.
Get the NFS mounted infromation from the device using the run command mountpoint /media/net/
and read the mount point for the NFS, and so on.
Provide the NFS mount point information in the args array to the webui.
Get the aspect ratio from the ENCODER_TABLE of the database and
read the aspect ration value by retrieving the video source width and height from the encdoer table and get the common divisor from them and calculate the
aspect value.
Provide the aspect ratio in the aspect_args array to the webui.
Get the board infromation from the multiple tables such as LOGO_TABLE, MODEL_NAME_TABLE of the database and
read the board information such as model name, model enable. The model name can be SDI, FSDI, DME10, Z3DOME, and so on.
Provide the board information in the board_args array to the webui.
Get the camera state infromation from the PRESET_TABLE of the database and
read the camera state information such as encoder channel, mode (encoder / decoder ), fpga infromation, auto start and so on.
Provide the camera state information in the cam_state_args array.
Get the camera related infromation from the CAMERA_TABLE of the database and
read the camera information such as zoom, white balance mode, color gain and hue, manual focus, exposure, high sensitivity and so on.
Provide the camera related information in the camera_args array to the web UI.
Get the camera index from the channel number and camera exposure information from the visca command in the device.
The camera exposure information such as ae_mode (auto / manual / shutter / Iris ), sensitivity, and so on.
Provide the camera ae information in the camera_ae_args array to the webui.
Get the camera index from the channel number and model infromation from the device by reading from the file /opt/webgui/model.html and
read the camera monitor mode information such as model, monitor mode table, and so on from the visca command.
Provide the camera monitor mode information in the camera_mode_args array to the webui.
Get the decoder status infromation from the DECODER_TABLE of the database and
read the decoder status information such as decoder channel, mode (encoder / decoder ), decoder status state (RUNNING / IDLE / STOPPED) and so on.
Provide the decoder status information in the decoder_args array.
Get the downloaded infromation by retrieving multiple table SCHEDULE_TABLE, actv_preset of the database and from the removable media storage
Read the downloaded file name, file size, last modified and so on.
Provide the download information in the json_tbl array to the webui.
Get the camera drs tamarisk settings infromation from the CAMERA_DRS_TAMARISK_TABLE of the database and
read the color pallete enabled and disabled, color pallete information, and so on.
Provide the camera drs tamarisk settings information in the drs_tamarisk_settings array to the webui.
Get the encoder status from the ENCODER_TABLE of the database and /tmp/src_status file in the device.
Read encoder status, video source and channel number.
Provide the encoder status information in the encoder_args array.
Get the file selection details from the removable media and actv_preset table in the database.
Read the download file type such as (.mkv, mp4, ts, mpeg, flv), file size, last modified, and so on.
Provide the file picker information from the removable media in the json_tbl array to the webui.
Get the removable device infromation from the device using fdisk command.
Read the mount point, filesystem name and so on.
Provide the removable media information in the fmt_args array.
Get the camera focus step size information from the CAMERA_TABLE of the database and
read the camera focus step size the value will be in the range of (0 to 8).
Provide the camera focus information in the focusStepSize_args array to webui.
Get the fpga infromation from the STATE_TABLE of the database and
read the fpga information such as fpga library based on the sensor id. The fpga library are (SonyLVDS / Boson / Composite / Tau2 / Tamarisk/ and so on)
Provide the fpga information in the fpga_args array to the webgui.
Get the decoder history infromation from the DECODER_HISTORY_TABLE of the database and
read the decoder channel, URL, and so on.
Provide the decoder history information in the history_args array.
Get the ip information from the z3utils. The information are local_ip address ,
local net mask, default_gw, ethernet speed, ethernet duplex and so on.
Provide the ip information in the ip_args array to the webui.
Get the permission infromation from the database.
Get the user information and user level details from get_user_info function.
Read the permission information from the PERMISSIONS_TABLE in the database.
Provide the information which includes username, level, and permission.
Get the system infromation from the database.
Get all the system information from multiple tables in the database and z3utils.
The tables are PRESET_TABLE, STATE_TABLE, AUDIO_INPUT_TABLE.
The information includes local_ip address , local net mask, session_id, syspassword, disp_standard,
disp_mode, disp_layout, enc_adv_settings, enable_sntp, enable_snmp rtsp_port, rtsp_timeout and so on.
Provide the system information in the state_args array.
Get the memory status infromation from the z3utils and here
we are reading the available memory information using proc meminfo command.
Provide the available memory status information in the web_status array.
Get the SNMP infromation from the SNMP_TABLE of the database and
Provide the SNMP information in the snmp_args array.
Get the terminal infromation from the TERM_TABLE of the database and
read the terminal information such as serial port, baud rate, parity, data bits, server address, device file and so on.
Provide the terminal information in the json_tbl array.
Get the ptz infromation from the ONVIF_Ptzs of the database and
read the ptz information such as ONVIF token, ONVIF Name, ptzType, position, max Tilts, and so on.
Provide the ptz information in the json_tbl array.
Get the ptz preset infromation from the PTZ_Preset table of the database and
read the ptz preset information such as profile token, name, preset ID and so on.
Provide the ptz preset information in the json_tbl array.
Get the ptz tour infromation from multiple tables (PTZ_Preset, ONVIF_PtzTourSpots) the database and
read the ptz tour information such as profile, tourID, profile name, stay time, and so on.
Provide the ptz tour information in the json_tbl array.
Get the users infromation from the ONVIF_Users table of the database and
read the user name, user group, user level, and so on.
Provide the user information in the json_tbl array.
Get the wifi related infromation from the STATE_TABLE of the database and
read the wifi information such as status, network, password, ap_password, access point enable, default gateway, and so on.
Provide the wifi information in the wifi_args array to the webgui.
Get the Secure socket layer (HTTP) infromation from the STATE_TABLE of the database and
read the ssl information such as https enable, http enable, https port, http port, certification status, certification, key status, key value, and so on.
Provide the ssl state information in the ssl_args array to the webui.
Get the video group settings infromation from the VIDEO_GROUP_TABLE of the database and
read the video group information such as video group, crop enable, crop coordinates, and so on.
Provide the video group settings information in the group_args array to the webui.
Get the camera state infromation from the PRESET_TABLE of the database and
read the camera state information such as encoder channel, mode (encoder / decoder ), fpga infromation, auto start and so on.
Provide the camera state information in the cam_state_args array.
Get the camera state infromation from the PRESET_TABLE of the database and
read the camera state information such as encoder channel, mode (encoder / decoder ), fpga infromation, auto start and so on.
Provide the camera state information in the cam_state_args array.
Get the camera state infromation from the PRESET_TABLE of the database and
read the camera state information such as encoder channel, mode (encoder / decoder ), fpga infromation, auto start and so on.
Provide the camera state information in the cam_state_args array.
Write encoder settings to active preset. See Python example code for Seting Configuration below
Requests an update to encoder_status_str variable.
To read the result, you need to POST the “stats” control as shown\ in the Python example code below.
Requests an update to stream_status_str variable.
To read the result, you need to POST the “stats” control as shown\ in the Python example code below.
Requests an update to astream_status_str variable.
To read the result, you need to POST the “stats” control as shown\ in the Python example code below.
Requests an update to source_status_str variable.
To read the result, you need to POST the “stats” control as shown\ in the Python example code below.
To set the encode configuration per channel the SetEncoder action is used with a post. All variables should be present or they will be replaced with a defualt that may not be valid for your application. More than one channel can be set per command. It is recommended you first read the current settings from the encoder then modify them and send the new settings back as in the Python example below:
import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' channel = 1 enc_cfg = requests.get(server_url, params='ctrl=enc&chn={}'.format(channel)) print enc_cfg.json() enc_cfg_json=enc_cfg.json() enc_cfg_json['vframeratediv'] = 2 #set frame rate divider to 2 new_cfg = {} new_cfg['action'] = 'SetEncoder' for key, value in enc_cfg_json.iteritems(): print "key = {} value = {}".format(key,value) new_idx = "enc_{}_{}".format(channel,key) print "setting {} to {}".format(new_idx,value) new_cfg[new_idx] = value print new_cfg requests.post(server_url, data=new_cfg)
http://<ENCODER_IP>/snapshot.cgi?size=3840x2160&quality=100 http://<ENCODER_IP>/snapshot.cgi?chn=1&size=1280x720&quality=80
valid options are:
chn =[1,2]
quality** =[0-100] supported resolutions are: 4K Models Only 3840×2160 \\ 2560×1440 4K and HD Models 1920×1080 \\ 1440×1080 \\ 1280×1024 \\ 1280×720 \\ 1024×768 \\ 960×720 \\ 1024×576 \\ 800×600 \\ 720×576 \\ 704×576 \\ 720×480 \\ 640×512 \\ 640×480 \\ 640×360 \\ 352×576 \\ 420×380 \\ 352×288 \\ 352×240 \\ 336×256 \\ 320×240 \\ 320×180 **
Python example of updating and reading encoder statistics:
import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' requests.post(server_url, {'action': 'EncoderStatus'} ) requests.post(server_url, {'action': 'StreamStatus'} ) requests.post(server_url, {'action': 'AStreamStatus'} ) requests.post(server_url, {'action': 'SourceStatus'} ) requests.post(server_url, {'action': 'TempStatus'} ) print requests.get(server_url, params='ctrl=stats&chn=null').json()
Example output:
{u'status': u'OK', u'astream_status_str': u'\tChannel 6 Codec fdk_aaclc Samplerate 48000 Input MICL Frames 32287820 OK', u'temp_status_str': u' LENS 29 CPU 78.700 FPGA 89.8 OK', u'ret': u'0', u'encoder_status_str': u' *** Encode Bitstream Received Statistics *** CH | Bitrate (Kbps) | Actual Bitrate | FPS | Actual FPS | Key-frame FPS | Width | Height ------------------------------------------------------------------------------------------------------------ 1 | 4000.00 | 4092.18 | 60.0 | 59.8 | 1.0 | 1920 | 1080 | OK', u'source_status_str': u' CAMERA 1920x1080p 60.00 fps\n', u'stream_status_str': u'Channel 1 URL rtsp Frames 12883581 OK'}
By default, no authentication is required to access the HTTP API.
To enable authentication, go to the “System” tab “Device Management” section. Click on the “Set Password” button.
The username will be “admin” The authentication method is HTTP Digest authentication. HTTP Basic authentication is not supported.
import requests,json, sys from requests.auth import HTTPDigestAuth auth=HTTPDigestAuth('admin','mypassword') print requests.get(server_url, params='ctrl=stats&chn=null', auth=auth).json()