VST not drawing overlay over video in AI NVR Metropolis

Hello,

I just deployed AI NVR entire stack, and it seems that everything is working.
I can see that DeepStream is pushing results to Redis to the “test” topic. Entries like this:

"1724090685447-0"
    2) 1) "message"
       2) "{\n  \"version\" : \"4.0\",\n  \"id\" : \"7312\",\n  \"@timestamp\" : \"2024-08-19T18:04:45.446Z\",\n  \"sensorId\" : \"safsouf\",\n  \"objects\" : [\n    \"22|155.072|23.1058|1244.09|813.203|Person|0.605658|#||||||\",\n    \"18|281.716|237.311|1436.5|1049.07|Person|0.471941|#||||||\",\n    \"20|952.962|401.057|1920|1080|Person|0.165179|#||||||\"\n  ]\n}"

But VST is not drawing anything.
Here is the config of VST:

    "network":

    {
            "http_port": 81,
            "server_domain_name":"",
            "stunurl_list": ["stun.l.google.com:19302","stun1.l.google.com:19302"],
            "static_turnurl_list": [],
            "use_coturn_auth_secret": false,
            "coturn_turnurl_list_with_secret": [],
            "use_twilio_stun_turn": false,
            "twilio_account_sid": "",
            "twilio_auth_token": "",
            "use_reverse_proxy": false,
            "reverse_proxy_server_address": "REVERSE_PROXY_SERVER_ADDRESS:100",
            "ntp_servers": [],
            "max_webrtc_out_connections": 3,
            "max_webrtc_in_connections": 1,
            "webservice_access_control_list":"",
            "rtsp_server_port": -1,
            "rtsp_preferred_network_iface": "eth0",
            "rtsp_in_base_udp_port_num": -1,
            "rtsp_out_base_udp_port_num": -1,
            "rtsp_streaming_over_tcp": false,
            "rtsp_server_reclamation_client_timeout_sec": 10,
            "socket_buffer_size":2000000,
            "stream_monitor_interval_secs": 2,
            "rtp_udp_port_range" : "31000-31200",
            "udp_latency_ms": 200,
            "udp_drop_on_latency": false,
            "webrtc_latency_ms": 1000,
            "enable_frame_drop": true,
            "webrtc_max_birate": 10000,
            "webrtc_min_birate": 2000,
            "webrtc_start_birate": 4000,
            "webrtc_peer_conn_timeout_sec": 10,
            "enable_grpc": true,
            "grpc_server_port": "50051",
            "webrtc_in_audio_sender_max_bitrate": 128000,
            "webrtc_in_video_degradation_preference": "resolution",
            "webrtc_in_video_sender_max_framerate": 30,
            "remote_vst_address": "",
            "webrtc_port_range": {"min":0, "max":0},
            "enable_websocket_pingpong": false,
            "websocket_keep_alive_ms": 5000
    },

    "onvif":

    {
            "device_discovery_timeout_secs":10,
            "onvif_request_timeout_secs":20,
            "device_discovery_freq_secs":15,
            "device_discovery_interfaces": ["eth1"],
            "max_devices_supported": 8,
            "default_bitrate_kbps": 8000,
            "default_framerate": 30,
            "default_resolution": "1920x1080",
            "default_gov_length": 60
    },

    "data":

    {
            "storage_config_file": "/root/vst_release/configs/vst_storage.json",
            "storage_threshold_percentage": 95,
            "storage_monitoring_frequency_secs": 2,
            "nv_streamer_directory_path": "/home/vst/vst_release/streamer_videos/",
            "nv_streamer_loop_playback":true,
            "nv_streamer_seekable":false,
            "nv_streamer_max_upload_file_size_MB": 10000,
            "nv_streamer_media_container_supported": ["mp4","mkv"],
            "nv_streamer_metadata_container_supported": ["json"],
            "nv_streamer_rtsp_server_output_buffer_size_kb": 1000,
            "supported_video_codecs": ["h264","h265"],
            "supported_audio_codecs": ["pcmu","pcma","mpeg4-generic"],
            "enable_aging_policy": false,
            "max_video_download_size_MB":1000,
            "always_recording": true,
            "event_recording": true,
            "event_record_length_secs": 10,
            "record_buffer_length_secs": 2,
            "use_software_path": false,
            "webrtc_in_fixed_resolution": "1280x720",
            "webrtc_in_max_framerate": 30,
            "webrtc_in_video_bitrate_thresold_percentage": 50,
            "webrtc_in_passthrough": false,
            "webrtc_sender_quality": "pass_through",
            "enable_rtsp_server_frameid_support": true,
            "gpu_indices": [],
            "webrtc_out_enable_insert_sps_pps" : true,
            "webrtc_out_set_iframe_interval" : 30,
            "webrtc_out_set_idr_interval" : 256,
            "webrtc_out_min_drc_interval" : 5,
            "device_name" : "VST",
            "device_location" : "Pune",
            "enable_dec_low_latency_mode": false
    },

    "notifications":

    {
            "enable_notification": true,
            "use_message_broker": "redis",
            "message_broker_topic": "vst.event",
            "message_broker_payload_key": "sensor.id",
            "message_broker_metadata_topic": "test",
            "redis_server_env_var":"redis:6379",
            "kafka_server_address": "localhost:9092"
    },

    "debug":

    {
            "enable_perf_logging":true,
            "enable_qos_monitoring":true,
            "qos_logfile_path":"/root/vst_release/webroot/log/",
            "qos_data_capture_interval_sec":1,
            "qos_data_publish_interval_sec":5,
            "enable_gst_debug_probes":true,
            "enable_prometheus":true,
            "prometheus_port": "8080",
            "enable_highlighting_logs":false,
            "enable_debug_apis": true,
            "dump_webrtc_input_stats": false,
            "enable_frameid_in_webrtc_stream": false,
            "enable_network_bandwidth_notification" : false
    },

    "overlay":

    {
            "video_metadata_server": "",
            "video_metadata_query_batch_size_num_frames": 300,
            "use_video_metadata_protobuf": false,
            "enable_gem_drawing": true,
            "analytic_server_address": "http://192.168.1.97:30080/emdx"
    },

    "security":

    {
            "use_https": false,
            "use_rtsp_authentication": false,
            "use_http_digest_authentication": false,
            "use_multi_user": false,
            "enable_user_cleanup": false,
            "session_max_age_sec": 2592000,
            "multi_user_extra_options": ["Secure", "SameSite=none"],
            "nv_org_id": "",
            "nv_ngc_key": ""
    }

    }
  vst_storage.json: |
    {
        "data_path": "/root/store/data/",
        "video_path": "/root/store/video/",
        "total_video_storage_size_MB": 1000000
    }

Do you see an issue why it is not drawing overlay ?

VST don’t support drawing overlay currently. Can you share more details of your use case? We can prioritize the feature based on the requirement.

Hello @kesong ,

Thanks for your answer. We are building a product for a customer, who is looking for a solution to detect different (cars, trucks, …) elements in an ROI for barriers opening / closing. We are using Namla Edge Orchestration platform to deploy the whole stack, and to manage Jetson devices.

Since AI-NVR is a quite complete solution, we decided to provide it like it is in the PoC phase. For the customer, it should be as automatic as possible. I understood that to see the output of deepstream we can do it using an other rtsp stream, right ? From the customer point of view, you can understand that he expects to see the overlays directly on the video he is watching.