Typical approach of saving frames+inference meta in deepstream

Hello,
I am looking for the best way so save frames and inference metadata in deepstream application. Options that I have tried:

  • A custom gst-dsexample plugin that sends full frames and inference metadata to Redis. This causes some performance issues, there is a lot of overhead caused by sending frames to redis.

  • Setting infer-raw-output-dir property of primary-gie component in order to save raw binary output of frames and detections to local storage. This is inconvenient, because inference metadata is dumped in 5 separate files, and there is no information about source id and timestamp being saved.

  • Save frames with infer-raw-output-dir and send metadata to redis with message broker. With this approach, not sure if we could map corresponding frame with metadata message, since it seems that binary dump of frames could be in any order (sources in any order)

What other approach would you recommend for this, what’s the optimal way? The images are later send to a web server, so we are looking for as much efficiency as possible.
Thanks.

Could you try to use rtsp sink plugin to send the video to the web server?

I don’t really need to send the entire video, just frames with detections and their metadata. Is there maybe a sample app that does exactly what I need(?): if models detected something, save that frame locally, and in another file save all frame and detections’ metadata.

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

No, we currently do not have such a comprehensive example. But you can refer to the pgie_src_pad_buffer_probe API in deepstream_image_meta_test.c to save the frame locally.

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