Using nvmsgconv and nvmsgbroker with the gst-launch-1.0 command line

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Jetson AGX Orin
• DeepStream Version 6.1.1
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

Hi, I would like to use nvmsgbroker with the gst-launch-1.0 command line. I have the broker config working with the deepstream-test4 app, and I can see the payload sent to the redis and the nvds logger. Using the same nvmsgbroker config with gst-launch, the library establishes a connection to the redis server, but it doesn’t send any payload msgs. NVOSD can read the metadata and print the bounding boxes, meaning the metadata is being generated by nvinfer. I tee’ing that to the nvmsgconv and nvmsgbroker elements. When I tried debugging the nvmsgconv source code, I don’t see any msg coming into gst_nvmsgconv_transform_ip

gst-launch-1.0 --gst-debug=2,nvinfer:6 uridecodebin3 uri=sample_720p.h264 !   nvstreammux name=m m.sink_0 
 batch-size=1 width=640 height=480 batch-size=1  ! queue ! nvvideoconvert ! queue ! nvinfer config-file-path=config_infer_primary.txt ! tee name=t ! queue ! nvvideoconvert   !  nvdsosd process-mode=GPU_MODE ! queue ! nvegltransform ! nveglglessink sync=true t. ! nvmsgconv config=cfg_msgconv.txt payload-type=1 msg2p-lib=libnvds_msgconv.so ! nvmsgbroker proto-lib= /opt/nvidia/deepstream/deepstream/lib/libnvds_redis_proto.so topic=mystream config=cfg_redis.txt 

please refer to this topic:Nvmsgconv - #2
if still can’t work, please check by this:

  1. please add logs in gst_nvmsgconv_start and gst_nvmsgbroker_start to check if start successfully.
  2. to narrow down this issue, please try the pipeline without display, gst-launch-1.0 --gst-debug=2,nvinfer:6 uridecodebin3 uri=sample_720p.h264 ! nvstreammux name=m m.sink_0
    batch-size=1 width=640 height=480 batch-size=1 ! queue ! nvvideoconvert ! queue ! nvinfer config-file-path=config_infer_primary.txt ! nvmsgconv config=cfg_msgconv.txt payload-type=1 msg2p-lib=libnvds_msgconv.so ! nvmsgbroker proto-lib= /opt/nvidia/deepstream/deepstream/lib/libnvds_redis_proto.so topic=mystream config=cfg_redis.txt

I confirmed that gst_nvmsgconv_start and gst_nvmsgbroker_start are both starting successfully. What I noticed that in gst_nvmsgconv_transform_ip , the user_meta_list is also zero length. whereas for the Deepstream-test4 execution, I get that array length >0 in batches.

I also tried running the pipeline without display and tee. Still no event.

I wonder if nvmsconv and nvmsgbroker are supposed to work with nvinfer on the gst-launch-1.0 command line?

I notice that deepstream-test4 the probe is add meta and if I comment it our, the I don’t get any paylood on the nvmsgbroker output.

Do I need to set any property in the nvinfer to generate or attach the meta data? is there anywhere else before transform_ip I can try to trap the meta data?

I was looking at gstnvinfer code, it refers to nvds_add_user_meta_to_obj and nvds_add_user_meta_to_frame functions but I cant find the implementation of that.

please refer to generate_event_msg_meta of osd_sink_pad_buffer_probe in deepstream_test4_app.c, you need to add NvDsEventMsgMeta in user meta.
Was this topic helpful? Nvmsgconv

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.