Redistributable library Binaries for deepstream C++ apps

Hi Nvidia,

We are trying to create a very small size docker container for C++ deepstream apps with just the required runtime libraries. For our application size is important. We just cant download / apt-get *dev packages as these make container bulky. The target size of our container with deepstream app should be few hundred MBs.

We are using deepstream-app C++ for object detection. We did our development in nvidia deepstream samples container. Now once our deepstream C++ app binary is created we are trying to create second vanila ubuntu container which has just the deepstream-app and dependent runtime shared libraries.
Using ldd we copied all the libs required to run deepstream.

libEGL.so.1
libGLdispatch.so.0
libX11.so.6
libXau.so.6
libXdmcp.so.6
libbsd.so.0
libcudart.so.10.2
libcustom2d_preprocess.so
libgio-2.0.so.0
libglib-2.0.so.0
libgmodule-2.0.so.0
libgobject-2.0.so.0
libgstapp-1.0.so.0
libgstaudio-1.0.so.0
libgstbase-1.0.so.0
libgstnet-1.0.so.0
libgstnvvideoconvert.so
libgstpbutils-1.0.so.0
libgstreamer-1.0.so.0
libgstrtp-1.0.so.0
libgstrtsp-1.0.so.0
libgstrtspserver-1.0.so.0
libgstsdp-1.0.so.0
libgsttag-1.0.so.0
libgstvideo-1.0.so.0
libjson-glib-1.0.so.0
libnvdc.so
libnvdla_compiler.so
libnvdla_runtime.so
libnvds_logger.so
libnvds_meta.so
libnvds_msgbroker.so
libnvds_utils.so
libnvdsgst_audiotemplate.so
libnvdsgst_deepstream_bins.so
libnvdsgst_dewarper.so
libnvdsgst_dsanalytics.so
libnvdsgst_dsexample.so
libnvdsgst_helper.so
libnvdsgst_infer.so
libnvdsgst_inferaudio.so
libnvdsgst_inferserver.so
libnvdsgst_logger.so
libnvdsgst_meta.so
libnvdsgst_msgbroker.so
libnvdsgst_msgconv.so
libnvdsgst_multistream.so
libnvdsgst_multistreamtiler.so
libnvdsgst_of.so
libnvdsgst_ofvisual.so
libnvdsgst_osd.so
libnvdsgst_preprocess.so
libnvdsgst_segvisual.so
libnvdsgst_smartrecord.so
libnvdsgst_tracker.so
libnvdsgst_udp.so
libnvdsgst_videotemplate.so
libnvimp.so
libnvinfer.so.8
libnvmedia.so
libnvos.so
libnvparser.so
libnvrm.so
libnvrm_graphics.so
libnvtvmr.so
liborc-0.4.so.0
libxcb.so.1

But we are getting error in nvgst related libs which we are not sure how to get the shared libs.


** ERROR: <create_multi_source_bin:1423>: Failed to create element 'src_bin_muxer'  
** ERROR: <create_multi_source_bin:1516>: create_multi_source_bin failed   
** ERROR: <create_pipeline:1338>: create_pipeline failed   
** ERROR: <main:639>: Failed to create pipeline  
Quitting  
App run failed

Please guide us

Hi @mjemv - It is not clear to me how you are building the container.
But are you aware that the DeepStream 6.1.1 dockerfiles are public?

It may be easier modifying a dockerfile and remove items you may not need.

I can try that again, but last time I tried the container size shot up to 2GB without weights and engine files.
While we need the size to be in few 100MBs, as we have to deploy the container on an edge device with 4G/LTE and it has limitations. So we cant just do with that large size. I am sure you would be appreciate the problem we have

I am trying to build the container in but step by step finding missing libs, so that I have only the required files. apt-get installs a lot of other things which I dont need.

So first thing I did was to find out using ldd deps of deepstream-app, then I copied the so files from /usr/lib/aarch64-linux-gnu/gstreamer-1.0 …

But am surely missing something, so if I do the hard way, the error

ERROR: <create_multi_source_bin:1423>: Failed to create element 'src_bin_muxer'

comes because a particular gstreamer-plugin cant be located.
Is there a way to find out which one / is there a way to build the nvidia specific grtreamer plugins from source.

Hi,
The error shows it fails to create nvstreammux. So it looks like it does not correctly link to libnvdsgst_multistream.so in your docker.

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