p(#ConfigSettings).Orchid Recorder uses two properties files to configure the system: orchid_server.properties and orchid_server.defaults.properties. These files contain settings that don’t change on a regular basis, and are reserved for those with administrator access. Both files can be used to configure all of the Orchid Recorder properties, but the orchid_server.properties file has priority over the other file.

Some of the configuration settings can be edited from within the Orchid Recorder software. (This is done using the Advanced Settings feature which is described in the Orchid Recorder Administrator Guide.) There are some settings, however, that will still need to be changed by editing the configuration file directly. These settings need to be protected from unauthorized changes because they are critical for program stability and reliability.

If you need to make a change to any of the protected configuration settings, please refer back to the instructions provided for your operating system.

Orchid Recorder’s configuration settings are listed below.

Web Server Settings

webserver.protocol
Possible values include http and https. (The tls.key and tls.certificate also need to be set. See TLS Settings discussed later in this topic.)

webserver.port
Port number of the web server.

webserver.html.rootpath
Root path to the Orchid Recorder HTML files.

webserver.maxthreads
Maximum number of threads used by the web server to handle requests. (Default: 16)

webserver.maxqueued
Maximum number of queued connections. (Default: 100)

webserver.sessions.user.max_age
Maximum age (seconds) of user session. (Default: 1 year)

webserver.sessions.remote.max_age
Maximum age (seconds) of remote session. (Default: 1 day)

webserver.ssl.ciphers
Enable/disable SSL/TLS ciphers (openssl cipher list format)

Archive Properties

archives.dir
Full path for the desired storage location of media archives. This takes the place of the webserver.archives.rootpath setting from previous versions. Unlike the old property, this one can be changed after installation and properly updates the archives to link to the new storage directory. Anytime you change this property, a new orchid-device.tag file will be created and saved in the new storage directory.

WebRTC Properties

webrtc.stun.host
IP address of the STUN server. (Note: If the host is set, the port must also be set. STUN can be disabled by setting host to “None” and not specifying a port. If host is not set, the STUN server defaults to stun.ipconfigure.com:3478.)

webrtc.stun.port
Port of the STUN server.

webrtc.turn.host
IP address of the TURN server.

webrtc.turn.password
Password of the TURN server.

webrtc.turn.port
Port of the TURN server.

webrtc.turn.type
Relay type of the TURN server.

webrtc.turn.username
Username of the TURN server.

webrtc.process_mdns
This setting enables the processing of remote ICE candidates with mDNS hostnames. (Default: False)

webrtc.rtx
This setting enables RTP retransmissions in WebRTC streams. (Default: True)

webrtc.public_ip
This is used to set the static, public IP address of the Orchid Recorder. If set, all of the ICE host candidates will be replaced with this address. This option can speed up WebRTC connection times when Orchid Recorder is behind a 1:1 NAT, such as in a cloud environment. (If the address supplied is incorrect, WebRTC will not work.)

RTSP Server Settings

rtsp.protocol
Protocol of the RTSP server. Note that the RTSP server transport (UDP/TCP/HTTP) is dynamically chosen by the client, while the encryption RTSP v. RTSPS is set by the server.

  • rtsp
    Default – Orchid Recorder UI will access the streams via UDP.
  • rtspt
    Orchid Recorder UI will access the streams via TCP-interleaved.
  • rtsps
    Orchid Recorder UI will access the streams via UDP SRTP.
  • rtspst
    Orchid Recorder UI will access the streams via TCP-interleaved TLS.

rtsp.service
Configure RTSP server to accept connections on the given service. This should be a string containing the service name or a string containing a port number between 1 and 65535. When service is set to 0, the server will listen on a random free port.

rtsp.session_cleanup_period
Number of seconds between checking to cleanup inactive sessions.

rtsp.server_backlog
The maximum amount of queued requests for the server.

rtsp.max_threads
The maximum threads used by the pool to handle client requests. A value of 0 will use the pool mainloop; a value of -1 will use an unlimited number of threads.

rtsp.max_sessions
The maximum allowed number of sessions. A value of 0 means there is an unlimited number of sessions.

rtsp.rtp_port_range.min
Sets the minimum RTP port range.

rtsp.rtp_port_range.max
Sets the maximum RTP port range.

capture.latency
Sets the maximum allowed latency/delay in milliseconds of an RTSP stream coming in to Orchid. A setting of 100 ms (the default) means that any media frames received by Orchid that are older than 100 ms will be ignored. (Increasing this setting may be useful when recording from cameras that are not on the same local network as the Orchid Recorder.)

TLS Settings

tls.certificate
Full path to the PEM encoded TLS certificate file. This can include a chain of certificates.

tls.key
Full path to the PEM encoded TLS key file.

Dynamic Configuration Settings

dynamic_configuration.port
TCP port over which the Dynamic Configuration Signaler and Signal Receiver will communicate. To disable dynamic configuration, set this port to none. (Default: 5566)

Camera Discovery Settings

cameradiscovery.publisher.uri
URI to the auto-discovery service. This allows you to connect to another ONVIF Auto-discovery service on another subnet. Usually this is set to tcp://127.0.0.1:5565.

Database Settings

sqlite.filepath
Full path (with filename) for the desired location of the sqlite database file.

sqlite.wal
To enable sqlite WAL mode, set to true. (Default: true.)

sqlite.busy.timeout
Set the sqlite PRAGMA busy_timeout (milliseconds).

sqlite.optimize.interval
Sets the interval (in minutes) at which the database will be optimized. A value of 0 or less disables periodic optimization. (Default: 60 minutes)

database.timeout.seconds
Database write lock timeout (seconds).

database.type
Database type to be configured by ODB.

Orchid Recorder Settings

orchid.admin.password
Orchid Recorder default administrator user password.

orchid.uuid
Server ID. Changing this value will disassociate all currently saved Orchid Recorder settings and video archives with the Orchid Recorder.

orchid.max_player_count
Maximum number of allowed Players on the Stage per client.

orchid.max_export_hours
Maximum number of hours allowed for video export. (Default: 1 hour.)

orchid.disable_generic_rtsp_driver
Disables the Generic RTSP camera driver. When set to true, only the ONVIF cameras can be added. If this is set to true, and there are Generic RTSP cameras already registered, Orchid Recorder will not start. (Default: false.)

orchid.lock_properties
Prevents one or more specified properties from being modified through the Advanced Settings feature. Use a comma-separated list to identify properties to be locked. (Default: “”) (ie. orchid.lock_properties: locale, rlimit.openfiles.max)

capture.audio
Enables audio recording by registered cameras. When set to true, Orchid Recorder will allow cameras to record audio. If audio recording is disabled (by setting this property to false), new archives, exports from those archives, and live streaming modes will not have available audio. (Default: true)

clockwatcher.skew.threshold.seconds
The maximum amount of time (in seconds) the clock is allowed to skew before the Orchid Recorder is shut down.

RLIMIT/ULIMIT/Limits.conf (Linux Only) Settings

rlimit.core.max
Maximum core size. Equivalent to ulimit -c. -1 for unlimited.

rlimit.openfiles.max
Maximum number of open files. Equivalent to ulimit -n.

rlimit.stack.max
Maximum stack size. Equivalent to ulimit -s.

Audit Logging Settings

audit_logging
Enables API audit logging. If set to false, new audit logs cannot be created, and existing audit logs will not be accessible via API. (Default: true)

Logging Settings

severity.file.default
File logging level. The Orchid Recorder logging system uses the levels below to determine what information will be logged. These levels are listed in order of ascending severity (but descending detail). For example, if you set this to trace, the system will keep very detailed logging. If you set this to critical, the system will log fewer details, including only those events that are critical. (Keep in mind that increasing the amount of detail in the log file will reduce the total amount of time that the logs will cover.)

  • trace
  • debug
  • normal – Recommended
  • notice
  • warning
  • error
  • critical

logger.dir
Log file location.

severity.console.default
Console logging level.

severity.syslog.default
Syslog logging level.

severity.console.channel
Console channel log levels (ie. Gst_Logger:trace, filesplit:debug)

severity.file.channel
File channel log levels.

severity.syslog.channel
Syslog channel log levels.

gst.debug
Gstreamer Debugging levels (ie. rtspclient:5, filesrc:3).

logs.file_size
Maximum size of a single log file in MB.

logs.split_time
Maximum duration of a single log file in minutes.

logs.total_size
Maximum size of all log files (in MB) until cleanup occurs.

syslog.address
Hostname of syslog server.

syslog.port
Port of syslog server.

Archive Cleaner Settings

archivecleaner.usedspace.percentage
Maximum disk usage percentage before the archive cleaner will start deleting archives.

archivecleaner.delete.percentage
Percentage of additional space to delete when overflow detected.

archivecleaner.periodic.seconds
Archive cleaner check period in seconds.

Low-bandwidth Playback Settings

playback.maxpipelines
Maximum number of allowed playback pipelines. (Default: 16)

framepuller.timeout
Number of seconds to wait before closing playback pipeline if no additional frames are requested. (Default: 10)

framepuller.threadpool.count
Number of threads for handling playback pipeline construction. (Default: 12)

framepuller.threadpool.maxtasks
Maximum number of playback pipeline construction requests before dropping new requests. (Default: 1024)

framepuller.websocket.base64simd
Overrides the default SIMD instructions for encoding JPEG frames to base64. (Note: If the platform does not support the SIMD instruction set specified, low bandwidth mode will not work and may crash the Orchid Recorder.)

Video Archive Writer Settings

filewriter.max.finalize.duration
Sets the maximum duration in milliseconds for the file writer to finalize a file before abandoning the file and entering failover mode. (Default: 500)

filewriter.max.op.duration
Set the maximum duration in milliseconds that an individual file operation is permitted to take. (Default: 30000)

filewriter.max.threads
Maximum number of filewriter threads per stream. (Default: 2)

Language Property

locale
Sets the language for Orchid Recorder. This can be set during the initial software installation (if installing on Windows or Ubuntu), and may be changed by editing the Advanced Settings, or by editing the configuration file directly.

Available settings currently include the following:

  • de – German
  • en – English (Default)
  • es – Spanish
  • fr – French
  • it – Italian
  • nl – Dutch
  • pt – Portuguese
  • ru – Russian

Forensic Timestamp Settings

capture.forensic_timestamps
Sets the primary option for the forensic timestamps feature, which is enabled by default. (Default: utc)

  • utc – The timestamp will display the date and time using coordinated universal time.
  • local – The timestamp will display the date and time using local time (at the Orchid Recorder).
  • disabled – Disables the forensic timestamp feature.

capture.forensic_timestamps_format
If forensic timestamps are enabled, this property allows you to configure the format of the timestamp. The format will be set using the function “strftime,” the elements of which are defined in the table below. The default string will include %a %m-%d-%Y %H:%M:%S %Z, but you may customize the format to suit your needs. Note: If the resulting timestamp string is greater than 100 characters, the timestamp will not be added or displayed.

Specifier Replaced by Example
%a Abbreviated weekday name * Thu
%A Full weekday name * Thursday
%b Abbreviated month name * Aug
%B Full month name * August
%c Date and time representation * Thu Aug 23 14:55:02 2001
+ %C Year divided by 100 and truncated to integer (00-99) 20
%d Day of the month, zero-padded (01-31) 23
+ %D Short MM/DD/YY date, equivalent to %m/%d/%y 08/23/01
+ %e Day of the month, space-padded ( 1-31) 23
+ %F Short YYYY-MM-DD date, equivalent to %Y-%m-%d 2001-08-23
+ %g Week-based year, last two digits (00-99) 01
+ %G Week-based year 2001
+ %h Abbreviated month name * (same as %b) Aug
%H Hour in 24h format (00-23) 14
%I Hour in 12h format (01-12) 02
%j Day of the year (001-366) 235
%m Month as a decimal number (01-12) 08
%M Minute (00-59) 55
+ %n New-line character (‘\n’)
%p AM or PM designation PM
+ %r 12-hour clock time * 02:55:02 pm
+ %R 24-hour HH:MM time, equivalent to %H:%M 14:55
%S Second (00-61) 02
+ %t Horizontal-tab character (‘\t’)
+ %T ISO 8601 time format (HH:MM:SS), equivalent to %H:%M:%S 14:55:02
+ %u ISO 8601 weekday as number with Monday as 1 (1-7) 4
%U Week number with the first Sunday as the first day of week one (00-53) 33
+ %V ISO 8601 week number (01-53) 34
%w Weekday as a decimal number with Sunday as 0 (0-6) 4
%W Week number with the first Monday as the first day of week one (00-53) 34
%x Date representation * 08/23/01
%X Time representation * 14:55:02
%y Year, last two digits (00-99) 01
%Y Year 2001
+ %z ISO 8601 offset from UTC in timezone (1 minute=1, 1 hour=100) If timezone cannot be determined, no characters +100
%Z Timezone name or abbreviation * If timezone cannot be determined, no characters CDT
%% A % sign %
  • The specifiers marked with an asterisk (*) are locale-dependent.
  • Rows marked with a plus sign (+) indicate specifiers and sub-specifiers introduced by C99. Since C99, two locale-specific modifiers (listed below) can also be inserted between the percentage sign and the specifier proper to request an alternative format, where applicable:
Modifier Meaning Applies to
+ E Uses the locale’s alternative representation %Ec %EC %Ex %EX %Ey %EY
+ O Uses the local’s alternative numeric symbols %Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy

Camera Stream Settings

The settings listed below should never need to be changed. Changes should only be performed by those with highly advanced knowledge of the software.

streampipeline.bgseg.boxArea
Minimum motion region size to report.

streampipeline.bgseg.dialate
Size of square structuring element for dilation.

streampipeline.bgseg.postErode
Size of square structuring element for second erosion.

streampipeline.bgseg.preErode
Size of square structuring element for first erosion.

streampipeline.bgseg.threshold
Minimum threshold in difference image to classify motion.

streampipeline.decode.keyFramesOnly
For H264 streams, set whether to decode all frames or key frames only. Note this affects motion detection and low-bandwidth live view.

streampipeline.filesplit.motionMode
Set the motion mode of the filesplit element.

streampipeline.filesplit.recordState
Set the record state of the filesplit element.

streampipeline.filesplit.timePeriod
Set the split time of the archived files (in seconds).

streampipeline.mode
Default stream pipeline mode.

streampipeline.motionReducer
Enable h264reducer. This will only take effect if the stream is H264 and motion detection is enabled. This will install an h264drop element before filesaver and detect motion events (on the gstreamer bus) to enable and disable the dropper. Motion will record at the full framerate, while non-Motion will drop non-keyframes.

Feedback

Was this helpful?

Yes No
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.

Post your comment on this topic.

Please do not use this for support questions.
IPConfigure Technical Support

Post Comment