Video Channel
πΉ Object: Video Channel (The Digital Eye of the System)¶
Represents a single video stream from a device, typically a security camera.
It's one of the most complex objects because it acts simultaneously as:
- Sensor β Provides visual information and metadata.
- Actuator β Can be commanded to record, move, etc.
π Concept¶
It's the "eye" of the system, allowing observation of an area in real-time.
Responds to:
- What is happening here?
- Can you show me the details?
- Can you save a record of this?
A single camera device can have multiple Video Channel objects (e.g., main stream in high quality and sub stream in low quality for previews).
βοΈ Operation¶
The Video Channel exposes properties that describe: - Its capabilities β If it's PTZ, if it supports recording. - Its current technical state β Resolution, FPS, bitrate.
Rules can: - Read these properties. - Send commands to start recordings, move the camera, etc.
β¨ Key Point¶
It's the visual source of truth and contextual evidence.
While other sensors offer abstract data, the Video Channel provides irrefutable visual proof, crucial for verification and investigation.
π Key Properties¶
1οΈβ£ Channel Capabilities (static)¶
ptzβ Indicates if the camera supports Pan, Tilt, Zoom.support_recordingβ Informs if the channel can record video.resolutionsβ List of supported resolutions.
2οΈβ£ Stream State (dynamic)¶
resolutionβ Image quality.fpsβ Frames per second.bitrateβ Video data rate.codecβ Compression format.- Main stream β High quality (recording).
- Sub stream β Low quality (optimized live viewing).
3οΈβ£ Identifiers and Resources¶
stream_idβ Unique identifier to access the stream.thumbnail_urlβ Recent static image for preview.
π§ Derived States and Common Actions¶
recording(Recording) β Most important state; can be activated by a rule (e.g., Alarm Panel inin_alarm).motion_detected(Motion Detected) β Activated by internal motion analytics.ptz_control(PTZ Control) β Ifptz = true, allows moving the camera to predefined positions (presets).idle/offline(Idle / Offline) β Indicates availability or connection loss.
β¨ Key Point to Highlight¶
The Video Channel transforms the system from a data collection to a verification and evidence platform.
Goes from knowing something happened (e.g., a door opened)
to understanding how, who, and what happened next, with visual context for security and decision-making.
Properties¶
- ptz: boolean indicating if the video channel is PTZ
- support_recording: boolean indicating if the video channel supports recording
- resolutions: array of strings indicating supported resolutions
- main_stream_fps: number indicating current frames per second rate
- main_stream_resolution: string indicating current resolution
- main_stream_bitrate: number indicating current bitrate. Bitrate is the bandwidth used by the video channel.
- main_stream_codec: string indicating current codec. Codec is the compression algorithm used for the video channel.
- main_stream_audio_codec: string indicating current codec. Codec is the compression algorithm used for the audio channel.
- main_stream_support_audio: boolean indicating if the video channel supports audio.
- main_stream_profile_name: string indicating current profile name. Profile is the video profile name used for the video channel.
- sub_stream_fps: number indicating current frames per second rate
- sub_stream_resolution: string indicating current resolution
- sub_stream_bitrate: number indicating current bitrate. Bitrate is the bandwidth used by the video channel.
- sub_stream_bitrate: number indicating current bitrate. Bitrate is the bandwidth used by the video channel.
- sub_stream_codec: string indicating current codec. Codec is the compression algorithm used for the video channel.
- sub_stream_audio_codec: string indicating current codec. Codec is the compression algorithm used for the audio channel.
- sub_stream_support_audio: boolean indicating if the video channel supports audio.
-
sub_stream_profile_name: string indicating current profile name. Profile is the video profile name used for the video channel.
-
stream_id: string indicating the main stream id, i.e., the highest quality stream.
- sub_stream_id: string indicating the secondary stream id, i.e., the lower quality stream.
- thumbnail_url: string indicating the video channel thumbnail url.
- video_engine_id: string indicating the video engine id assigned to the video channel for video encoding and decoding.
The properties of fps, resolution, bitrate, codec, audio_codec, support_audio, profile_name are updated by the driver only if the integration protocol supports it.