## Overview
The **Stream Settings** page centralizes recording-related configuration for all configured streams.
It provides:
- **Global recording defaults** that apply system-wide
- **Per-stream options** for enabling/disabling recording and controlling stream-specific behavior
- A live status view indicating whether streams are available and whether recording is active
- Motion-based recording configuration (where supported)
This page is typically used by administrators or operators responsible for recording policy and storage configuration.
![[z_img/1bf89e2f3b03ef7c9bb5837f3bd4cfb6_MD5.jpg|800]]
<div style="page-break-after: always;"></div>
## Functionality
### Global Recording Defaults
The **Global recording defaults** section defines the storage behavior used by all streams.
#### Recording Root Path
- Specifies the base folder where recordings are stored.
- All recordings are written under this location.
#### Create Per-Point Subfolders Automatically
When enabled:
- Each stream stores recordings in its own subfolder under the root path.
- Folder name is based on the stream’s effective folder name (custom folder name if configured, otherwise the stream key).
When disabled:
- All recordings are written directly into the root folder.
#### Save Defaults
- Saves the global configuration.
- Changes apply to subsequent recording operations.
![[z_img/4a3fe469166cfd4e6524239dc7de423e_MD5.jpg|800]]
---
### Per-Stream Options
The **Per-stream options** table lists all configured streams and provides controls for recording and stream-specific configuration.
#### Stream Identification
Each row displays:
- **Key** (stream identifier)
- If the key is a GUID (typical for XProtect cameras), the UI also displays the resolved camera name.
- **Effective folder path**
- Shows the actual folder used for this stream based on global defaults and per-stream folder name.
![[z_img/60c30e789c47cf749f0dd627aca03147_MD5.jpg|500]]
---
#### Recording Controls
##### Auto-record
Enables or disables recording for the stream.
- Only available when the stream is currently live.
- If a stream is not live, recording controls are disabled to prevent invalid actions.
##### Motion only
Enables motion-triggered recording (where supported).
- Requires:
- Stream is motion-capable, and
- Recording is enabled for the stream
- When enabled:
- Manual Start/Stop is disabled (recording is controlled by motion triggers)
- A **Configure** button becomes available for selecting motion topics
A status chip indicates motion capability and current mode:
- **MOTION** – motion recording enabled
- **IDLE** – motion supported, but not enabled
- **NO MOTION** – motion not supported for this stream
---
#### Folder Name
Allows specifying a custom folder name for the stream.
- If empty, the stream key is used as the folder name.
- Folder names are validated to prevent invalid file system characters.
This directly affects where recordings are stored when per-point folders are enabled.
---
#### Status Indicators
Each stream row includes a status chip summarizing its current state:
- **REC** – recording active (or motion recording enabled)
- **STANDBY** – stream is live but not currently recording
- **DISABLED** – stream is not live / not active
This provides a quick operational view without needing to open the stream.
---
#### Manual Start / Stop
The **Manual** column provides direct recording control:
- **Start**
Starts recording immediately (only if live and motion recording is not enabled).
- **Stop**
Stops recording for the stream.
Manual control is disabled when:
- The stream is not live, or
- Motion-only recording is enabled
---
#### Actions
Each stream provides a small action set:
- **Save**
Persists current per-stream settings and applies recording behavior accordingly.
- **Info**
Opens a stream information dialog, including:
- Stream key and path
- Resolved camera name (when applicable)
- Camera identifier (when applicable)
![[z_img/a07d745efb49d13d19c8d74603541179_MD5.jpg|800]]
---
#### Motion Topics Configuration
When motion-only recording is enabled, the **Configure** button opens a **Motion topics** modal.
Within the modal:
- **Load supported** retrieves available motion topics supported by the stream/device.
- The operator can select one or more topics (checkbox list).
- **Save** persists the selected topics back to the stream configuration.
- The motion subscription can be re-armed immediately so changes take effect without restarting the stream.
If no topics are loaded, the modal guides the user to load supported topics first.
![[z_img/a4173c36cf46937fbc2c502ec479fdc2_MD5.jpg|800]]
<div style="page-break-after: always;"></div>
## Workflow
A typical workflow for configuring recording:
1. Set global recording defaults
- Configure root recording folder
- Enable per-stream subfolders if desired
- Save defaults
2. Enable recording for selected streams
- For live streams, enable **Auto-record** and Save
3. Configure motion-only recording (optional)
- Enable **Motion only** (if supported)
- Open Configure and select motion topics
- Save
4. Validate status
- Confirm status chips reflect expected state (REC / STANDBY / DISABLED)
5. Use manual Start/Stop when needed
- Start recording for ad-hoc captures
- Stop when complete
<div style="page-break-after: always;"></div>
## Setup and Verification – Example
### Example: Enable Recording with Per-Stream Folders
1. Configure Global Defaults
- Set **Recording root path** (e.g., `D:\Recordings`)
- Enable **Create per-point subfolders automatically**
- Click **Save defaults**
2. Enable Recording for a Live Stream
- Locate a stream that is currently live
- Enable **Auto-record**
- Click **Save**
3. Verify Storage Path
- Confirm the UI shows the effective folder path under the stream key
- Verify the folder exists under the root path (created automatically if enabled)
4. Validate Recording Status
- Confirm status chip shows **REC**
- Confirm Manual button shows **Stop**
This confirms that defaults apply correctly and per-stream recording can be enabled and persisted.
---
## Note: Live Stream Requirement
Recording controls are intentionally disabled when a stream is not live.
This prevents saving a recording state that cannot be applied operationally and avoids confusion when a stream is offline.
<div class="page-break" style="page-break-before: always;"></div>