params.streams{}: StreamConfig aka object
Complete stream configuration for a camera
params.streams{}.source: Url aka string
Pattern: ^(?:https|file|rtsp|tcp|udp|sink|sync)://[[:graph:]]+$
Valid URL string
RTSP URL of the camera stream
params.streams{}.enable: null|boolean
optional nullable
Whether the camera/stream is enabled
params.streams{}.camera: Uid aka string
Pattern: ^[a-zA-Z0-9_-]+$
Unique identifier used throughout the system
Unique camera identifier
params.streams{}.priority: null|integer
optional nullable
Stream priority
params.streams{}.secure: null|string
optional nullable
Default:
Stream security key used to encrypt the stream
params.streams{}.device: null|string
optional nullable
No description
params.streams{}.dvr: DvrObject aka null|object
optional nullable
DVR recording and storage configuration
DVR recording configuration
params.streams{}.dvr.enable: EnableObject aka null|string|boolean|array
optional nullable
One of 3 variants
Whether DVR recording is enabled
params.streams{}.dvr.enable<0>: EnableString aka string
Pattern: ((always|never|event:([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.dvr.enable<1>: EnableArray aka array
No description
params.streams{}.dvr.enable<1>[]: string
Pattern: (((monday|tuesday|wednesday|thursday|friday|saturday|sunday):([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.dvr.enable<2>: boolean
No description
params.streams{}.dvr.location: Url aka null|string
optional nullable
Pattern: ^(?:https|file|rtsp|tcp|udp|sink|sync)://[[:graph:]]+$
Valid URL string
Storage location for DVR archive (required if DVR is enabled)
params.streams{}.dvr.duration: integer
optional
Default:
Archive retention duration - older recordings are automatically cleaned up
params.streams{}.dvr.buffer: ByteSize aka string
optional
Pattern: ^[0-9]+(G|M|K)$
Default:
Byte size with unit suffixes (G=gigabytes, M=megabytes, K=kilobytes)
Internal buffer size for caching read/write operations
params.streams{}.dvr.quota: ByteSize aka string
optional
Pattern: ^[0-9]+(G|M|K)$
Default:
Byte size with unit suffixes (G=gigabytes, M=megabytes, K=kilobytes)
Archive storage size limit (0 = unlimited)
params.streams{}.capture: CaptureObject aka null|object
optional nullable
Stream capture configuration
params.streams{}.capture.enable: EnableObject aka null|string|boolean|array
optional nullable
One of 3 variants
Whether stream capture is enabled
params.streams{}.capture.enable<0>: EnableString aka string
Pattern: ((always|never|event:([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.capture.enable<1>: EnableArray aka array
No description
params.streams{}.capture.enable<1>[]: string
Pattern: (((monday|tuesday|wednesday|thursday|friday|saturday|sunday):([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.capture.enable<2>: boolean
No description
params.streams{}.live: LiveObject aka null|object
optional nullable
Stream live configuration
params.streams{}.live.enable: EnableObject aka null|string|boolean|array
optional nullable
One of 3 variants
Whether live streaming is enabled
params.streams{}.live.enable<0>: EnableString aka string
Pattern: ((always|never|event:([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.live.enable<1>: EnableArray aka array
No description
params.streams{}.live.enable<1>[]: string
Pattern: (((monday|tuesday|wednesday|thursday|friday|saturday|sunday):([0-9]+):([0-9]+))?(:(full|part))?)
No description
params.streams{}.live.enable<2>: boolean
No description
params.streams{}.access: AccessObject aka null|object
optional nullable
Access control parameters for live and DVR playback
Access control parameters for playback
params.streams{}.access.allow: AccessType aka null|string
optional nullable
One of: private, public
Type of access control for stream playback
Access control type
params.streams{}.access.password: string
optional
Default:
Authentication password
params.streams{}.access.user: string
optional
Default:
Authentication username
params.streams{}.access.whitelist: array
optional
Default:
List of IP addresses allowed access without authentication
IP whitelist for unauthorized access
params.streams{}.access.whitelist[]: IpAddress aka string
Pattern: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
IPv4 or IPv6 address
params.streams{}.tracks: array
optional
Default:
Media channels to capture from the stream
List of media tracks to capture
params.streams{}.tracks[]: TrackType aka string
One of: video, audio, application
Media track types that can be captured from RTSP stream
params.streams{}.sensor: null|object
optional nullable
Default:
No description
params.streams{}.sensor{}: string
No description
params.streams{}.reconnect: ReconnectParams aka null|object
optional nullable
Stream reconnection parameters for handling network connection failures
Stream reconnection parameters
params.streams{}.reconnect.interval: integer
optional
Default:
Minimum timeout in seconds between stream connection attempts
params.streams{}.reconnect.period: integer
optional
Default:
Maximum time interval for connection attempts during consecutive failures
params.streams{}.reconnect.total: integer
optional
Default:
Number of consecutive failed attempts before marking stream as invalid
params.streams{}.reconnect.timeout: integer
optional
Default:
Reconnection timeout in seconds
params.streams{}.timeout: null|boolean
optional nullable
Default:
No description
params.streams{}.cluster: ClusterObject aka object
Failover cluster configuration for stream capture
Cluster failover configuration
params.streams{}.cluster.primary: string
Hostname of primary cluster node that captures the stream continuously
params.streams{}.cluster.spare: null|string
optional nullable
Hostname of secondary cluster node that captures the stream
params.streams{}.modify: ModifyObject aka null|object
optional nullable
Modify configuration for stream spoiling
Modify configuration to explicitly spoil RTSP stream (for testing only)
params.streams{}.modify.frame_drop: number
optional
Default:
Drop each `frame_drop` frame
params.streams{}.modify.cycle_drop: number
optional
Default:
Drop each `cycle_drop` frame
params.streams{}.modify.duplication: number
optional
Default:
Duplicate each `duplication` frame
params.streams{}.modify.permutation: number
optional
Default:
Permutate each `permutation` frame
params.streams{}.modify.corruption: number
optional
Default:
Corrupt each `corruption` frame
params.streams{}.modify.zeroing: number
optional
Default:
Zeroing each `zeroing` frame
params.streams{}.modify.truncation: number
optional
Default:
Truncate each `truncation` frame
params.streams{}.modify.delay_dispersion: array
Delay frame streaming in the dispersion range
params.streams{}.modify.delay_dispersion[]: integer
No description