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