Onvif Device Reference Design - Project Architecture - High Level Design

From RidgeRun Developer Connection
< Onvif Device Reference Design‎ | Project Architecture
Revision as of 09:26, 28 June 2022 by Oporras (talk | contribs) (High Level Design)
Jump to: navigation, search




Previous: Project Architecture Index Next: Project Architecture/Class Diagrams



High Level Design

The high-level design of the reference design is presented in figure 1. There are the following modules:

  • Base Server: This class instance the OnvifServer provided by LibOnvif and set up all its necessary information such as model, hardware ID, RTSP ports, encryption used, etc. See an example of this here. This Base Server makes his custom implementation of the iVideoEncoderHandelr, iVideoSourceHandler, and iRtspStreamHandler to support the custom behavior of the NVIDIA Jetson devices.
    • JetsonEncoderHandler: manages the custom encoders of the NVIDIA Jetson devices and reports them to the base server.
    • JetsonSourceHandler: manages the custom video sources of the NVIDIA Jetson devices and reports them to the base server.
    • GstJetsonStreamHandler: manages the multimedia using a GStreamer pipeline configuring it with the provided information.
  • Default Server: This class inherits from Base Server and sets the network interface, port, and factory of the Onvif Media Client. Some 3rd party Onvif clients could connect to this default server, such as an Onvif Device Tool.
  • Web Server: this is a REST Api that provides the Default Server information and also allows its modification. See these requests here.
  • Web Page: this is a web page developed by RidgeRun where you can see and modify some configurations of the Default Server using the REST Api. Flask is used for deploying the web page, so if you want to support this application in production this engine should be changed. Also, for the Web-RestApi communication, we used the example keys provided by OpenSSL. If you wanted to take this application to production, new custom keys should be generated. Feek free to contact the RidgeRun team if you want support for these two task.


Figure 1: High Level Design of Onvif Reference

File:OnvifRefDesignHighLevelDiagram.png



Previous: Project Architecture Index Next: Project Architecture/Class Diagrams