toolboc/Intelligent-Video-Analytics-with-NVIDIA-Jetson-and-Microsoft-Azure

NVIDIADeepStreamSDK: fails to start

orionJag opened this issue · 2 comments

Paul

    Excellent Tutorial put together by you and Erik. Very well documented and as well as good walkthrough. 

    Currently I am having an issue and I am sure it's my setup.  The issue is on Module 2.6 : Customizing the Sample Deployment, the module NVIDIADeepStreamSDK fails to start.  The following is the error msg I receive when I run  "sudo iotedge logs NVIDIADeepStreamSDK " cmd 

App run failed
** ERROR: <create_multi_source_bin:1057>: Failed to create element 'src_bin_muxer'
** ERROR: <create_multi_source_bin:1132>: create_multi_source_bin failed
** ERROR: <create_pipeline:1296>: create_pipeline failed
** ERROR: main:1419: Failed to create pipeline
Quitting
App run failed


The issue remains the same, whether I use "0" or "1" for the following in the deployment.template.json file. Also JetsonNano, shows "1" for echo $DISPLAY

                    "env": {
                        "DISPLAY": {
                            "value": ":0"
                        }
                    }

Current setup
Jetson Nano: Jetpack 4.4.1 (L4T 32.4.4)
CSI: RPi Camera
USB: C920 HD Pro Webcam
Using DSConfig-CustomVisionAI.txt
uri=rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

None of the parameters have been changed in the above DSConfig... file. Let me know how I could resolve this issue. Also awaiting for few FI9821P from Foscam and will try with the changes.

Once again appreciate all your community efforts in this arena. Please keep this coming.

Thanks

Paul
Following is what I have in the /etc/profile

/etc/profile: system-wide .profile file for the Bourne shell (sh(1))

and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

xhost local:iotedge

if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "id -u" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi

if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

I noticed that there are issues with EGL in latest JetPack 4.4.1 as NVIDIA has adopted a new XFCE based Window environment. To get rid of any possibility of DeepStream interacting with EGL you can disable the setting of the DISPLAY env by renaming the variable to something else (recommended DISPLAY_PLACEHOLDER) here: https://github.com/toolboc/Intelligent-Video-Analytics-with-NVIDIA-Jetson-and-Microsoft-Azure/blob/master/deployment-iothub/deployment.template.json#L92

Then in your associated DSConfig file i.e. (https://github.com/toolboc/Intelligent-Video-Analytics-with-NVIDIA-Jetson-and-Microsoft-Azure/blob/master/services/DEEPSTREAM/configs/DSConfig-CustomVisionAI.txt), ensure that you disable any sinks of type=2 (EGL type), or alternatively configure to a different non-EGL type like type=5 to draw directly to the framebuffer instead of an EGL window.

I'll need to look into this a bit further, but for now this should unblock your device while I explore if this is indeed related to the XFCE change (that is my hunch, but currently unconfirmed).