Onvif device server-copy

From RidgeRun Developer Wiki


Introduction

ONVIF is an open industry forum that provides and promotes standardized interfaces for effective interoperability of IP-based physical security products. It uses the profile concept; a profile is a set of features that a compliant device or client must support. So if a client claims to be Profile S compliant, it will work with any device that's also Profile S compliant.


As of today, Onvif defines the following profiles:


Profile A: Profile A is for products used in an electronic access control system. A Profile A conformant device can retrieve information, status and events, and configure entities such as access rules, credentials and schedules.

Profile C: Profile C is for products used in an electronic access control system. Profile C conformant devices and clients support site information, door access control, and event and alarm management.

Profile G: Profile G is designed for IP-based video systems. A Profile G device (e.g., an IP network camera or video encoder) is one that can record video data over an IP network or on the device itself.

Profile Q: Profile Q is for IP-based video systems and its aim is to provide quick discovery and basic configuration of Profile Q conformant products (e.g., network camera, network switch, network monitor) on a network.

Profile S: Profile S is designed for IP-based video systems. A Profile S device (e.g., an IP network camera or video encoder) is one that can send video data over an IP network to a Profile S client.

Profile T: Profile T is designed for IP-based video systems. Profile T supports video streaming features such as the use of H.264 and H.265 encoding formats, imaging settings, and alarm events such as motion and tampering detection. Mandatory features for devices also include onscreen display and metadata streaming.

The following picture exemplifies a typical interconnection of Profile S devices and clients:

Example onvif devices

Onvif device server

Ridgerun offers a solution that can turn any Linux device into a basic non onvif compliant device, RidgeRun can extend the Onvif Device Server to be an Onvif Profile S compliant device depending on customer requirements. It makes use of GStreamer daemon to implement the underlying multimedia functionality (GStreamer Daemon, also called gstd, is a GStreamer framework for controlling audio and video streaming using TCP connection messages). The modularity offered by the Onvif server allows the user to easily add new features. It is intended to provide ONVIF support easily, reducing time to market and helping our customers to avoid investing time on dealing with the ONVIF specification implementation.

In its current version, a reduced set of requests of the media and device services are supported in a way that allows the user to have a working stream out of the box. New services and requests can be added based on customer's needs. The current version allows autodiscovery and saving the configurations of the media profiles along with the video source and encoder configurations, this feature by default works as an autosave every time a profile or configuration is modified, but can be toggled to not autosave with every modification.

Following is an example configuration.

Example configuration

The onvif server is installed in your Linux hardware with camera(s) attached to it and immediately will turn into an Onvif device.

Implemented device service requests

Basic request that will allow the client to retrieve the basic device information and capabilities:

  • GetDeviceInformation: Basic device information: Manufacturer, firmware version, ...
  • GetCapabilities: Here we can report the feature we support (or not).
  • GetServices: Services we support (Device and Media only)
  • SystemReboot: Reboots the system.
  • GetServiceCapabilities: Gets the configured capabilities of the device
  • GetUsers: Gets the available users
  • CreateUsers: Creates a new user
  • DeleteUsers: Removes a user
  • SetUser: Modifies the information of an user

Implemented Media service requests

This service takes care of the media configuration. Basic set of request that allow the client to get the current profile, video sources, video source configurations, video encoder configurations, and streaming URI.

  • GetServiceCapabilities: Service capabilities
  • GetProfile: Get profile by name
  • GetProfiles: Get the list of available profiles
  • GetVideoSources: Get list of physical video sources
  • GetVideoSourceConfigurations: Get list of video source configurations
  • RemoveVideoSourceConfiguration: Removes a video source configuration
  • AddVideoSourceConfiguration: Adds a video source configuration to a existing profile
  • SetVideoSourceConfiguration: Modifies a video source configuration
  • CreateProfile: Creates a new multimedia profile
  • DeleteProfile: Deletes a profile.
  • GetGuaranteedNumberOfVideoEncoderInstances: Gets the number of guaranteed instances of video encoders.
  • AddVideoEncoderConfiguration: Adds a video encoder configuration to a profile
  • SetVideoEncoderConfiguration: Modifies a video encoder configuration
  • GetVideoEncoderConfiguration - JPEG: Get video encoder configuration by name
  • GetVideoEncoderConfigurations: Get list of video encoder configurations
  • GetStreamUri: Get the Stream URI for a certain Profile

References



For direct inquiries, please refer to the contact information available on our Contact page. Alternatively, you may complete and submit the form provided at the same link. We will respond to your request at our earliest opportunity.


Links to RidgeRun Resources and RidgeRun Artificial Intelligence Solutions can be found in the footer below.