This document provides a brief description of the main components building the cameras management system.
System Design
System Components
Cameras Manager
Used to add a new camera in the system with its own IP and parameters. The Cameras Manager is a persistent storage for all cameras labelled with specific ID in the system. It has the following capabilities:
Stores the type of the camera driver and its settings.
Delivers events when a camera is added, updated (property or status changed), or removed.
Provides an HTTP proxy servlet which supports delivering of images, live video streaming (including RTSP->HTTP converted signals for which the Cameras module provides an FFMPEG transcoder), and record streaming.
Defines access to image or video streaming through a firewall.
Cameras Pluggable Commands
The Cameras Commands bundle provides pluggable commands for managing the video cameras of the Cameras Module.
Cameras Recorder
The Cameras Recorder provides functionality for capturing and managing camera records in various formats, resolutions, FPS (frames per seconds), duration, records file location.
Camera Driver
The Cameras Module provides drivers for communication with real cameras. Every driver is described through its meta information such as one or more versions and a vendor.
Cameras Adapter
The Cameras HDM Adapter bundle represents the implementation of the HomeProtocolAdapter interface for the Cameras API integration within the Device Access (DA) system. It allows for representation of cameras as home devices.
The Cameras Module provides proxy access for the following protocols:
HTTP - A URL command is issued, as a result an HTTP request is sent through the GET method to the Cameras Manager. The manager pushes back a response containing headers and data in accordance with supported formats by the used camera driver.
RTSP (Real Time Streaming Protocol) - trough implementation of the RTSP protocol. It is the primary port at which clients' requests are accepted. Uses the RTP (Real-time Transport Protocol) for carrying media streams.
The proxy protocol (HTTP or RTSP) is detected automatically.
The Cameras module provides customization support for registered cameras, meaning that the camera can be manipulated with additional features and restrictions. For example, the camera's record control can be added by the record customizer. Customization is not mandatory.
Module Blocks
Cameras module consists of the following components:
Cameras API bundle - provides interfaces to communicate with video cameras within the OSGi environment
Cameras Manager bundle - used for management of camera devices and drivers
Cameras HDM Adapter - represents cameras as devices compliant with the Device Access (DA)