Skip to content

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 in in_alarm).
  • motion_detected (Motion Detected) β†’ Activated by internal motion analytics.
  • ptz_control (PTZ Control) β†’ If ptz = 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.