VST Config

Following table describes the parameters in VST config file:

VST config file

Key

Description

Typical Value

network

Section to define all Network related parameters

“http_port”

HTTP port number for accessing VST webservices

“30000”

“server_domain_name”

Server domain name

“vst-service”

“stunurl_list”

STUN server address

[“stun.l.google.com:19302”]

“static_turnurl_list”

TURN server address

[]

“coturn_turnurl_list_with_secret”

Coturn Turnurl list with secret

[]

“use_coturn_auth_secret”

Enable/Disable Coturn Auth secret

FALSE

“use_twilio_stun_turn”

Enable/Disable Twilio

FALSE

“twilio_account_sid”

Twilio Account Sid

“”

“twilio_auth_token”

Auth token for Twilio

“”

“ntp_servers”

NTP server address

[“time.google.com”]

“max_webrtc_out_connections”

Max number of webrtc output connections at a given time

8

“webservice_access_control_list”

An Access Control List allows restrictions to be put on the list of IP addresses which have access to the web server. The ACL is a comma separated list of IP subnets, where each subnet is pre-pended by either a - or a + sign. A plus sign means allow, where a minus sign means deny. If a subnet mask is omitted, such as -1.2.3.4, this means to deny only that single IP address.

“+10.42.0.0/32”

“rtsp_server_port”

User given rtsp port number

8554

“rtsp_preferred_network_iface”

Preferred network interface for RTSP streaming

“eth1”

“rtsp_in_base_udp_port_num”

RTSP UDP Port Number

-1

“rtsp_out_base_udp_port_num”

RTSP UDP Port Number

-1

“rtsp_streaming_over_tcp”

Enable / Disable RTSP Streaming over TCP

FALSE

“rtsp_server_reclamation_client_timeout_sec”

Timeout for RTSP Server reclamation client

10

“socket_buffer_size”

Socket buffer size, to avoid frame drop in bytes

2000000

“stream_monitor_interval_secs”

Stream Monitor interval in seconds

2

“udp_latency_ms”

Latency for UDP connection in millisecond

200

“udp_drop_on_latency”

Enable/Disable UDP frame drop

FALSE

“webrtc_latency_ms”

Latency for webrtc in milliseconds

500

“enable_frame_drop”

Enable/Disable frame drop

TRUE

“webrtc_max_birate”

Maximum bitrate for Webrtc camera

10000

“webrtc_min_birate”

Minimum bitrate for Webrtc camera

2000

“webrtc_start_birate”

Start bitrate for Webrtc camera

4000

onvif

Section to define all ONVIF related parameters

device_discovery_timeout_secs”

Device discovery timeout to receive probe match message from device

10

“onvif_request_timeout_secs”

Timeout to receive ONVIF command response from device

10

“device_discovery_freq_secs”

device discovery frequency in secs

5

“device_discovery_interfaces”

Network interface for device discovery e.g eth0, eth1

[]

“max_devices_supported”

Limiting maximum number of devices

8

“default_bitrate_kbps”

Default value of bitrate setting on device

8000

“default_framerate”

Default value of framerate setting on device

30

“default_resolution”

Default value of resolution setting on device

“1920x1080”

“default_max_gov_length”

Default value of GOV length setting on device

60

data

Section to define all VST data related parameters

“storage_config_file”

Path to storage configuration JSON file

./configs/vst_storage.json

“storage_threshold_percentage”

% value of storage occupancy when aging policy triggers

95

“storage_monitoring_frequency_secs”

Monitor storage usage with frequency in seconds

2

“supported_video_codecs”

Video codec supported for video recording

[“h264”,”h265”]

“supported_audio_codecs”

Audio codec supported for audio recording and decode

[“pcmu”,”pcma”,”mpeg4-generic”]

“max_video_download_size_MB”

Limiting the maximum video download size

1000

“always_recording”

Enable/Disable always ON recording

FALSE

“webrtc_out_enable_insert_sps_pps”

webRTC Out Enable / Disable SPS PPS insertion

TRUE

“webrtc_out_set_iframe_interval”

webRTC Out set I-Frame Interval

30

“webrtc_out_set_idr_interval”

webRTC Out set IDR Interval

256

“webrtc_out_min_drc_interval”

webRTC Out minimum interval between DRC requests

5

“webrtc_out_encode_fallback_option”

webRTC Out encode fallback option (sofware or pass_through)

software

notifications

Section to define all Notifications related parameters

“enable_notification”

Enable notification of device events on message broker

FALSE

“use_message_broker”

Message Broker to use (Redis)

“redis”

“message_broker_topic”

Topic/event used in message broker

“vst.event”

“redis_server_env_var”

Redis server address:port

REDIS_SVC_SERVICE_HOST:6379

debug

Section to define all Debug related parameters

“enable_perf_logging”

Enable/Disable perf logging

TRUE

“enable_qos_monitoring”

Enable/Disable QOS logging

TRUE

“qos_logfile_path”

OS log file path

/root/vst_release/webroot/log/

“qos_data_capture_interval_sec”

QOS log capture interval

1

“qos_data_publish_interval_sec”

QOS log publish interval

5

“enable_gst_debug_probes”

Enable/Disable gstreamer probes

TRUE

“enable_prometheus”

Enable/Disable stats update on prometheus

FALSE

“prometheus_port”

prometheus port number

8080

“enable_highlighting_logs”

Enable certain logs highlighting by special colors

TRUE

“enable_debug_apis”

Enable/Disable Debug apis

TRUE

security

Section to define all security related parameters

“use_https”

Enable/Disable https

TRUE

“use_rtsp_authentication”

Enable/Disable RTSP proxy stream authentication

TRUE

“use_http_digest_authentication”

Enable/Disable HTTP user authentication

TRUE

Remote Access Options

Installation of STUN / TURN Server

Installation and configuration of these servers are mandatory for WebRTC streaming. Below are the NAT type requirements for STUN/TURN:

Cameras Supported

Case

NAT types

STUN/TURN requirement

1

Symmetric to Symmetric

TURN

2

Symmetric to Port-Restricted Cone

TURN

3

Symmetric to Address-Restricted Cone

STUN (but probably not reliable)

4

Symmetric to Full Cone

STUN

5

Everything else

STUN

Depending on your network type, you may choose to install STUN and/or TURN servers:

  • You can set the STUN server using stunurl config parameter.

  • You can set the TURN server using turnurl config parameter.


Turn-server settings required for webrtc streaming, use either one of the below options from vst-config:

Examples:

Option 1: Specify turn server URLs with static credentials.

  • static_turnurl_list: [“admin:admin@10.0.0.1:3478”]

Option 2: Specify coturn turnUrls with secret.

To install coturn server, run the following command:

sudo apt-get install coturn
  • use_coturn_auth_secret: true

  • coturn_turnurl_list_with_secret: [“10.0.0.1:3478:secret_key”,10.0.0.2:3478:secret_key2]

Option 3: Specify Twilio turn-server account details userId & auth_token. User has to create account on https://www.twilio.com/

  • use_twilio_stun_turn: true

  • twilio_account_sid: “<accound-sid>” OR twilio_account_sid: “<account_sid>:<key_sid>”

  • twilio_auth_token: “<auth_token>” OR twilio_auth_token: “<key_secret>”

Here is public STUN server from Google:

  • “stun.l.google.com:19302”, you may use this by setting vst-config option “stunurl” option

Note

TURN server is not mandatory, this is required only if Client and Server are in different networks.

VST Config details can be found here: VST Config.