Is the Nx Cloud up? Visit our Status Page for the current health and performance of the Nx Cloud.

Status Page

Integrate video-source SDK plugin in Nx Witness 4.0 Trail Version

Answered

Comments

4 comments

  • Andrey Terentyev
    • Network Optix team

    Hello Squid fujitsu,

    1. Yes it is possible to integrate plugins in trial version.

    2. I am not sure I understood your question. What do you mean by "other ways"?

    To achieve your purpose you need Analytics plugin not video source plugin. Such plugins are activated per camera and and are provided with frames by the Server. A plugin can perform whatever detection it is designed for and then sends back to the Server object metadata only.

    You can take stab_analytics_plugin as an example.

    0
  • Permanently deleted user

    Hi Andrey Terentyev,

     

    Thank you for getting back to me.


    >>1. Yes it is possible to integrate plugins in trial version.

    We are using virtual camera, and not able to see plugin option (please refer below) as mentioned in Nx Witness channel _https://www.youtube.com/watch?v=HvVW74ZXnCIscreenshot).

    >> Purpose (elaboration)

    We are performing object detection in different machine. 

    Our setup:

    Nx Witness (HTTP stream) ------> Specialized Hardware (Nvidia Jetson board) ------> Result frames (images).

    We want to store result frames as form of video back to NxWitness server (Thats why we need video-source sdk.)

     

    Please help.

     

    0
  • Nx Support

    Unfortunately, Virtual Camera doesn't support plugins, because Virtual Camera doesn't have a real-time stream.

    You can emulate live camera with video files using this tool: https://support.networkoptix.com/hc/en-us/articles/360018067074-How-to-Emulate-IP-Cameras-in-Nx-Meta-VMP-with-Testcamera

    0
  • Andrey Terentyev
    • Network Optix team

    Hi,

    For your objective 

    We are creating one object detection tool, which will take live stream from NxWitness, apply object-detection, and then send back inference results into VMS.

    Your presented setup does not suit:

    Nx Witness (HTTP stream) ------> Specialized Hardware (Nvidia Jetson board) ------> Result frames (images).

    The reason is simple. There is no way to send detected object metadata directly to the Server from an external machine. The only way to provide Server with object metadata is via analytics plugin.

    That’s why you don’t need video source SDK. Video source SDK is designed to facilitate development of video camera drivers in order to make the Server possible to pull video streams from cameras with proprietary (non ONVIF, non RTSP) protocols.

    For your objective you need Metadata SDK in order to develop analytics plugin. There are several options in addressing your objective.

    1. Recommended one.

    Create analytics plugin by means of Metadata SDK. The plugin runs on the same machine the Server does, in the same process the Server does.  Once a plugin is enabled on a camera, the Server passes all the video frames from this camera to the plugin.

    Your plugin sends either all the frames or just several of them to your remote machine - Specialized Hardware (Nvidia Jetson board)  - just over network socket, for example. Machine processes the frames and sends back to the plugin object metadata. On receive, the plugin passes object metadata to the Server. Make your analytics plugin as thin and simple as possible in terms of video frames processing.

    Here is the scheme.

    Nx Witness Server -1. passes frames-> analytics plugin  ---2. sends frames over network---> Specialized Hardware (Nvidia Jetson board) 

    Specialized Hardware (Nvidia Jetson board) --3. sends metadata over the network--> analytics plugin -4. passes metadata-> Nx Witness Server

    2. Another one.

    You still need analytics plugin developed by means of Metadata SDK. The plugin runs on the same machine the Server does, in the same process the Server does. The plugin opens network connection to Specialized Hardware (Nvidia Jetson board) for controlling recognizing application and receiving metadata.

    Your Specialized Hardware (Nvidia Jetson board) pulls video stream from the Server. The recommended way is using RTSP. You can get familiar with API on the Server web page. http://localhost:7001/static/api.xml#group_Video_API

    HTTP should be avoided if possible, since it implies video transcoding and causes Server load increase.

    Specialized Hardware (Nvidia Jetson board) processes the video stream, detects objects and sends object metadata over network to your analytics plugin running on the Server. The plugin passes object metadata to the Server.

    Here is the scheme.

    Specialized Hardware (Nvidia Jetson board) <--1. Pulls video stream over network-- Nx Witness Server

    Specialized Hardware (Nvidia Jetson board) --2. sends metadata--> analytics plugin -3. passes metadata-> Nx Witness Server

    Disadvantage of this option is bigger network delays, what might not be suitable if you want to display detected objects in the live stream.

     

    0

Please sign in to leave a comment.