User Tools

Site Tools


http_api |

This is an old revision of the document!


Table of Contents

HTTP API for FXXX-1XA / HEXK-DCK / FXXK-DCK / DME-10 / HE1080-RPS / Z3CAM / ZCube(-21/SC/SDI) / Z3Dome

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

Configuration API Syntax

Reading Configuration

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}

Encoder Channel Configuration

aenable

Description: Enable audio channel

Possible values: yes, no

acodec

Description: Audio encoder algorithm selection

Possible values: dsp_aaclc, fdk_aaclc, fdk_aache, fdk_aache_v2

abitrate

Description: Audio encode bitrate

Possible values: Depends on codec; in units of bits per second

asamplerate

Description: Audio sample rate

Possible values: 48000, 44100

asource

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)

apid

Description: Audio PID for transport stream.

Possible values: 32 to 8191 - must not conflict with other PID assignments.

aport

Description: Destination UDP port for RTP audio

aptspcr

Description: For transport stream modes only – intial PTS to PCR offset for audio, in milliseconds

Possible values: 100 to 2000

auth_passwd

Description: Password for RTMP authentication.

auth_user

Description: Username for RTMP authentication.

authonoff

Description: Enable or disable RTMP authentication. Default: off Possible values: on, off

channel

Description: Encoder channel number

Possible values: 1, 2, 3

feccol

Description: Column count for ProMPEG.

Possible values: integer greater than 1

feconoff

Description: Enable ProMPEG if supported.

Possible values: on, off

fecrow

Description: Row count for ProMPEG.

Possible values: integer greater than 1

filesize

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).

fprefix

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.

storage

Absolute path to mounted media device (e.g. /media/sda1/)

avmux_index

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.

telopcharsize

OSD overlay text character size in pixels

Possible values: 16, 32, or 64

telopenable

Enable or disable telop (i.e. OSD overlay of text).

Possible values: on, off

teloplocation

Where to overlay text in the encoded video

Possible values: top_left top_right top_center bottom_left bottom_right bottom_center

teloptext

Text string for OSD overlay

vgopsize

Description: Distance between I frames (key frames) in GOP sequence

Possible values: 1 through 240

vbitrate

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.

vdelay

Description: Video maximum burst size in milliseconds.

Possible values: 100 to 2000

vdest

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

vframeratediv

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

vgdr

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

vcodec

Description: Specifiec which codec to encode with.

Possible values: h265, h264, mjpeg

vprofile

Description: H.264 profile (see https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles​ for full description)

Possible values: baseline, main, high

vprotocol

Description: Protocol used to transport the encoded bitstream.

Possible values: rtp, rtmp, udp, asi, tsfile, mts, tsrtp

vquality

Description: Set balance between low latency, and higher quality+bitrate compliance.

Possible values: lowlat, balanced, high

vratectrl

Description: Rate control mode for encoder.

Possible values: cbr, vbr

vbr mode may be burstier than cbr.

vres

Description: Video resolution

Possible values: follow_input preserve video source resolution, no resize

               WxH           resize to width W and height H

vsource

Description: Video input from which encoder will source its video

Possible values: Board-dependent

pipenable

Description: Enable PIP of channel 2 on channel 1 encode. Only available on FV4K/FV2K/FSDI

Possible values: on, off

piplocaton

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

vinterlacemode

Description: Sets the interlaced mode for the video input

Possible values: combined, separated (H265 only)

vmulticastdest

Description: video multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions

Possible values: valid multicast addresses

amulticastdest

Description: audio multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions

Possible values: valid multicast addresses

rtsp_auth_enable

Description: enables/disables rtsp authorization for stream

Possible values: on, off

rtsp_auth_username

Description: username for rtsp authorization

Possible values: alpha numeric string

rtsp_auth_password

Description: password for rtsp authorization

Possible values: *

Transport Stream Parameters

The following parameters only apply to transport stream encoding (transport is set to udp, asi, tsfile, mts, or tsrtp).

vpid

Description: Video PID for transport stream.

Possible values: 32 to 8191 – must not conflict with other PID assignments

apid

Description: Audio PID for transport stream.

Possible values: 32 to 8191 – must not conflict with other PID assignments

pcrpid

Description: PCR PID for transport stream.

Possible values: 32 to 8191 – must not conflict with other PID assignments

pmtpid

Description: PMT PID for transport stream.

Possible values: 16 to 31 – must not conflict with other PID assignments

tsrate

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.

tslowlat

Description: Low latency transport stream mode (VBR).

Possible values: off, on

auxonoff

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.

klvbrate

Description: Bitrate to allocate in transport stream for KLV data.

klvenable

Description: Enable KLV capture from SDI, UART or debug file, if supported.

Possible values: off, on

klvmode

Description: Type of KLV source device, whose path is specified in klvsrc

Possible values: sdi, serial, file

klvserialbaud

Description: If klv_mode is serial, specify the baud rate

Possible values: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

klvmuxmethod

Description: Select synchronous or asynchronous transport stream KLV multiplexing, as specified in MISB ST 1402

Possible values: sync, async

klvpid

Description: PID for KLV data in transport stream

klvsrc

Description: Source device for KLV metadata

pcrinterval

Description: Interval between PCR packets in milliseconds.

Possible values: 30 - 100

Global Configuration


Action Syntax

Generic Actions (POST)

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

AddChannel

newchn

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.

AddHistory

Insert decoder history in the database

Input : channel number, URL

Output : Add the information in the decoder history table in the database

camera_inquiry

cam_index

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)

CameraControl

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

ClearHistory

delete the decoder history

input : channel number

output : Delete the channel number from the DECODER_HISTORY_TABLE of the database

DeleteChannel

delete the channel tab and update the PRESET_TABLE of the database.

DeletePreset

delete each row of the preseting value of encoder or decoder based on the get_opmode from the PRESET_TABLE

DisconnectWifiAP

Output: Disconnects the Wifi Network

DisplayStatus

​Dynamic

chn

​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

val

Value to set dynamic variable to.

EjectStorage

chn: Encoder channel number

dec: Device name as in storage

Output: un mounts the device to eject in safe

ErasePresets

moving the preset value from the existing table to a new table and erasing the existing table

ExportPresets

create a z3export.db and copy the presetting value of encoder or decoder based on the get_opmode of the PRESET_TABLE

FactoryReset

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.

fmt_media

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.

GetCameraTab

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)

tab_index

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

GetStatus

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.

GetVideoInputs

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.

GetWifiPass

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.

InsQuery

Input : data

read the data: Query Ins

Output: Returns the YawAngle, PitchAngle or RollAngle

PtzAuxiliary

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

LoadUser

Load the active preset value from the PRESET_TABLE and update

enc_current_preset

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.

Login

set the password value for login user.

Logout

Authorization:

Json data wich contains nonce and name of the user

Output: Remove digest entry for this user

Overlay

Add/Update overlay

chn

​Encoder channel to add overlay to.

rgn_idx

​Index to map overlay to.

​type

Type of overlay to be used possible values: text or png.

source

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.

location

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)

char_size

For text overlay this is the character size. Possible values: 16,32,64

layer

This will set the layer for the overly higher numbers will overlay over lower numbers if overlapping.

alpha

Sets the transparency of the text. Possible values: 0-255

OverlayStop

chn

​Encoder channel to remove overlay from.

rgn_idx

​Index of overly for this channel.

PtzAbsoluteMove

Send absolute move command to the PTZ.

data

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

PtzClearPreset

clear the Ptz preset values

data:

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

PtzContinuousMove

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}

PtzGotoPreset

Get the authentication user name

data:

parse the data using json format and retrieve the profile token, preset token, username and token.

Output: set the preset value of Ptz.

PtzNewTourSpot

Get the new tour spot

data:

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

PtzPosition

move the Ptz to the input position

data:

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

PtzPreset

Preset the Ptz based on the value parsed from the json object.

data:

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.

PtzQuery

Get the ptz status degree value.

data:

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

PtzRemoveTourSpot

Remove the ptz tour spot

data:

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

PtzSetPreset

Get the user information which provides user name, user level, and nonce.

data:

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

PtzStartTour

Get the user information which provides user name, user level, and nonce.

data:

parse the data using json format and retrieve the profile_token, preset_token, and username, and token

Output: Start the new Ptz tour

PtzStop

Stop pan and tilt

  action=PtzStop&data={"mode":1,"idx":0}

RemoveJobs

Remove / delete the jobs from the schedule.

purgelist

Read the job index and job name

rowcnt

Number of rows of the schedule job.

Output

Delete the jobs in the /opt/config/z3schedules/root/ in the system and also update in the SCHEDULE_TABLE in the database.

RestartBoard

Reboot the board

SaveCamera

Save camera-related settings below.

zoom_direct_value

Description: Set camera zoom

Possible values: 0 (wide) to 0x7ac0 (full zoom)

white_balance_mode

Possible values: auto. indoor, outdoor, onepush, autotrace, manual, outdoor_auto,

               sodium_lamp_auto, sodium_lamp_fixed, sodium_lamp_outdoor

color_gain

Possible values: Range from 0 (60%) to 14 (200%)

color_hue

Possible values: Range from 0 (60%) to 14 (200%)

chroma_suppress

Possible values: 0=none, 1, 2, 3

wb_manual_rgain_direct

Possible values: 0 to 255

wb_manual_bgain_direct

Possible values: 0 to 255

optical_zoom_only

Possible values: 0, 1

focus_direct_value

Description: Set manual camera focus distance Possible values: 0x1000 to 0xf000

manual_focus

Description: Set focus mode

Possible values: auto, manual

SaveCameraBoson

saves the camera boson settings

arg

reads the color pallete value

Output

Save the camera DRS tamarisk settings in the CAMERA_BOSON_TABLE in the database

SaveCameraDRSTamarisk

saves the camera DRS Tamarisk settings

arg

reads the color pallete value

Output

Save the camera DRS tamarisk settings in the CAMERA_DRS_TAMARISK_TABLE in the database

saves the camera Link settings

arg

reads the pixel format and color table value

Output

Save the camera DRS tamarisk settings in the CAMERALINK_TABLE in the database

SaveCameraLx

Saving the CameraLx settings value and update in the CAMERA_LX_TABLE in the database

name

read the value of exposure mode, shuter speed , exposure component settings, whitebalance, ISO, Color Temp, NtscPalSelection, MovieSteadyMode

used in the camera settings

SaveCameraTau

saves the camera TAU settings

tab_index

reads the color pallete value from this path /tmp/currentlut*.txt and also reads the active color table

Output

Save the camera TAU settings in the CAMERA_TAU_TABLE in the database

SaveJobs

Read the values from the schedule tab and save the jobs

data

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 )

rowcnt

Number of rows of the schedule job.

Output

Save the jobs in the /opt/config/z3schedules/root/ in the system and also update in the SCHEDULE_TABLE in the database.

SavePresets

check whether the mode is decoder or encoder using get_opmode()

enc_current_preset

save the encoder preseting value in the PRESET_TABLE

dec_current_preset

save the decoder preseting value in the PRESET_TABLE

Output : Update state setting table in the database

SaveUser

Save current settings to non-volatile memory, so they will be used on the next startup.

SetAdv

Control advanced settings display on WebUI.

enc_adv_setting

Possible values: off, on

SetAPConfig

set the password for the Wifi network

passwd:

read the password to connect with the WIFI network

passwden:

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

SetAudio

Set the analog mic decibal value

analog_gain_db

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.

val

The value for the color table and pixel format

opt

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.

SetConsole

set the console value as ttyAMA0 or none.

console_enable:

“on” to enable or “None” to disable the console device for the log prints

Output: Set the console value.

SetDDNSEnable

Dynamic DNS settings.

ddns_enable

ddns_provider

ddns_username

ddns_password

ddns_hostname

SetDebugLevel

Set logging level. The setting is persistent.

sysdebuglevel

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.

SetDevName

Set the device name

sysdevicename

Read the device name

Output: update new device name in the STATE_TABLE in the database

SetDisplay

Controls composite output (passthru video from camera)

disp_std

Set display standard for composite output

Possible values; auto, ntsc, pal

SetDSCP

set the DSCP configuration value

diff_serve

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.

SetFpga

Set the fpga value.

fpgafileglob

read fpga value, the values can be (boson/cvbs/tamarisk/tau2)

Output : update fpga value in the STATE_TABLE of the database

SetIp

local_ip

IPv4 adresss

local_netmask

IPv4 netmask

default_gw

IPv4 default gateway

local_dnsip

DNS server primary

local dnsip2

DNS server secondary

use_dhcp

Controls use of DHCP or static IP

Possible values: 1 (DHCP enabled), 0 (DHCP disabled, use static IP)

do_autostart

Control automatic stream start after bootup

Possible values: 1 = do autostart 0 = do not autostart

enc_adv_setting

Control appearance of advanced settings on WebUI

Possible values: off, on

eth_speed

Control Gigabit Ethernet auto-negotiation allowed speeds

Possible values: AUTO, AUTO-100, 1000, 100, 10

eth_duplex

Control Ethernet auto-negotiation allowed duplex

Possible values: AUTO, FULL, HALF

ipmtu

Control Ethernet IP Maximum Transmission Unit (MTU) size in bytes

Possible values: 576 to 1500

SetLoginLimit

Set the maximum login limit.

maxlogin

mximum number of login limit. The limit is in range of ( greater than 2 and less than 100 )

login_window

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)

lockout_interval

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:

Login timeout

output: Updates the system login logout limits in the STATE table of the database

SetNFS

Set the nfs value in the database.

nfs_enable

enable/disable nfs

nfs_server

provide the nfs server ip address. Default is 192.168.1.6

nfs_server_root

provide the server root path / location.

Output: update nfs information in the STATE_TABLE in the database

SetSNMP

Set the SNMP value in the database

enable

enable/disable SNMP

power_trap_en

enable/disable power trap

input_loss_trap_en

enable/disable Input loss trap

input_recover_trap_en

enable/disable Input recover

temp_high_trap_en

enable/disable temperature high trap

temp_recover_trap_en

enable/disable temperature recover trap

trap_hosts

trap hosts value is the ipaddress. Default ip address value is 192.168.0.6

high_temp_suppress

hiigh temperature default value is 30,

nominal_temp_suppress

nominal temperature default value is 30,

snmp_v3_en

enable/disable SNMP

snmp_v3_encrypt

SNMP v3 encrypt value

snmp_v3_user

z3user

snmp_v3_passwd

z3password

snmp_v3_usrpro

snmp v3 usrpro default value is md5

snmp_v3_encrypt_passwd

z3password

snmp_v3_encpro

decrypt value

snmp_v3_engineid

default value for engineid is 0.

Output : Update SNMP values in the SNMP_TABLE of the database.

​SetSNTP

enable

Enable/Disable SNTP.

servers

NTP server or list of NTP servers.

timezone

Linux TZ database value for Timezone.

SetNMEAEnable

Set the GPS NMEA data value in the database

nmea_enable

enable/disable the NMEA

Output : Update the NMEA value in the STATE_TABLE of the database.

​SetOnvif

onvif_enable

Enable/Disable ONVIF.

onvif_persistent

Enable/Disable ONVIF persistent audio channel.

fixed_profile_max

Maximum ONVIF profiles to allow (1 or 2).

SetOnvifVMD

vmd_enable

enable/disable video motion detection

vmd_sens

sensitivity value required for vmd ( value will between 1 to 100)

vmd_zone_modify

enable/diable video motion and too darkness zone

vmd_vcrop_width

crop width for VMD and too_darkness

vmd_vcrop_height

crop height for VMD and too_darkness

vmd_vcrop_x

crop startx for VMD and too_darkness

vmd_vcrop_y

crop starty for VMD and too_darkness

td_enable

enable/disable too darkness

td_thresh

threshold value for too darkness ( value will between 1 to 100)

vmd_td_channel

channel number (1 / 2)

Output : update rtsp value in the STATE_TABLE and ONVIF_VMD_TD_TABLE of the database

SetRTSP

Set the RTSP value in the database

rtspd_port

read rtsp port and the default value is 554

rtspd_timeout

Timeout value required for the rtsp connection

Output : update rtsp values in the STATE_TABLE of the database

SetTermSrvEnable

Set the term server value in the database

termserve_remote_enable

Enable/Disable remote access to terminal server. Possible values are : on, off

termserve_shared_enable

Enable/Disable shared access to terminal server. Possible values are : on, off

Output : Update rtsp values in the STATE_TABLE of the database

SetVideoGroup

Set the video group configuration, and update in the database and change the active settings dynamically.

group

Is the camera index, the values are ( 4K. DME-20, HE2160-RPS ) and so on.

nr_enable

enable/disable noise reduction.

crop_enable

enable/disable crop region.

===
crop_x ===

crop rectangle x value

===
crop_y ===

crop rectangle y value

crop_width

crop rectangle width value

crop_height

crop rectangle height value
Output : Update the value in the VIDEO_GROUP_TABLE in the database.

SetViewport

Set the view port for the decoder and update in the database.

Chn

Decoder Channel number

viewport

viewport settings. The default value is fit.

Output: Updates the viewport settings for the given decoder instance in DECODER_TABLE of database

SetViVpssMode

Set the vpss value in the database.

enc_vivpss_mode_enable

Enable or disable the VPSS mode

Output: Update the VPSS enable or Disable in STATE table of the database

SetWifiAP

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

SetZFinderEnable

zfinder_enable

Possible values: off, on

StartChannel

Transition the encoder channel into the running state.

Once you start the channel, it will not transmit data until the
video input is detected.

StartMTS

St

StopChannel

Transition the encoder channel into the stopped state.

StopMTS

TempStatus

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.

update_require_web_login

require:

is password required or not.

Output:

Update the state of the required web login value in the STATE_TABLE of the database.

UpdatePtz

update the ptz value in the database.

data

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.

UpdatePtzPreset

update the ptz preset value in the database.

data

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

UpdatePtzTourSpots

update the ptz tour spots value in the database.

data

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

UpdateTerm

Control serial port terminal server for VISCA

term_mode

Possible values: client, server

term_protocol

Possible values: clearchannel, telnet

term_localport

Local TCP port (for server mode)

term_servaddr

Remote IP address (for client mode only)

term_servport

Remote TCP port (for client mode only)

term_baudrate

Possible values: 9600, 19200, 38400, 57600, 115200

term_devicefile

user_add

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

user_remove

data: Name of the user

Output: User will be removed in ONVIF_users table of database

user_update_level

data: Name of the user

Output: User level will be removed in ONVIF_users table of database

user_update_password

data: Name of the user

Output: User password will be removed in ONVIF_users table of database

Generic Control (POST)

permission

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.

permission_args

Provide the information which includes username, level, and permission.

sys

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.

state_args

Provide the system information in the state_args array.

ipinfo

Get the ip infromation from the utils

Get the ip information from the z3utils.

The information are local_ip address , local net mask, default_gw, ethernet speed, ethernet duplex and

auto start and so on.

ip_args

Provide the ip information in the ip_args array.

boardinfo

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.

board_args

Provide the board information in the board_args array.

cam_state

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

enc

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.

encoder_args

Provide the encoder status information in the encoder_args array.

fmt

Get the removable device infromation from the device using fdisk command.

Read the mount point, filesystem name and so on.

fmt_args

Provide the removable media information in the fmt_args array.

dec

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.

decoder_args

Provide the decoder status information in the decoder_args array.

history

Get the decoder history infromation from the DECODER_HISTORY_TABLE of the database and

read the decoder channel, URL, and so on.

history_args

Provide the decoder history information in the history_args array.

aspect_info

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.

aspect_args

Provide the aspect ratio in the aspect_args array.

stats

Get the memory status infromation from the z3utils and here

we are reading the available memory information using proc meminfo command.

web_status

Provide the available memory status information in the web_status array.

snmp

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

term

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

GetCronJobs

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

ptz

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

ptz_preset

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

ptz_tour

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

download

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

filepicker

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

users

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

camera

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

wifi

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

ssl

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

8021x

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

video_group

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

fpga

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

camera_monitor_mode

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

camera_exposure

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

drs_tamarisk_settings

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

onvif

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

onvif_vmd

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

zoomStepSize

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

onvif

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

onvif

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.

cam_state_args

Provide the camera state information in the cam_state_args array.

Encoder Actions (POST)

SetEncoder

Write encoder settings to active preset. See Python example code for Seting Configuration below

EncoderStatus

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.

StreamStatus

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.

AStreamStatus

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.

SourceStatus

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.


Setting Encoder Configuration

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)

snapshot.cgi Control

http://<ENCODER_IP>/snapshot.cgi?size=3840x2160&quality=100

http://<ENCODER_IP>/snapshot.cgi?chn=1&size=1280x720&quality=80

valid options are:

  • *size =[any supported valid resolution]

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 **

Reading Statistics

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'}

Authentication

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.

Python example code of HTTP Digest authentication

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()
http_api.1683666167.txt.gz · Last modified: 2023/05/09 21:02 by suresh