As of now, I am running on Ubuntu 18.04 with GStreamer 1.14.5.
We are noticing that GStreamer 1.14.5 is unable to connect to newer cameras, while GStreamer 1.16.2 can. DeepStream’s dependency on the old version of GStreamer is a severely limiting factor that greatly diminishes our motivation of continuing to use DeepStream and makes us wonder whether we should start porting the platform specific components and use the newer versions of GStreamer.
I tried upgrading the GStreamer version on my laptop and I managed to connect to the Dahua RTSP camera using the same URI, but I broke the hardware decoder and encoder in the process.
This problem has been encountered at least twice so far, but apparently it hasn’t been a good enough reason for Nvidia to consider updating its dependencies:
Sadly, those images are for dGPU only and the Jetson images mount libraries from the host in cheap attempt to save storage which make them unusable in production.
In the end I managed to create a custom set of Docker images for the Jetsons by compiling GStreamer 1.20.0 from source and installing it to /opt/gstreamer to prevent clashes with the system GStreamer libraries. I strongly recommend Nvidia to update the minimum GStreamer version requirement since GStreamer 1.20.0 works flawlessly on the Jetsons and only prints a warning for dGPU:
GStreamer 1.20.0 seems to break the hardware accelerated encoder, so it does not work flawlessly as I thought. However, I managed to get the rtspsrc element to work with the Dahua camera in GStreamer 1.14.5 by setting short-header to true.
For GStreamer to pick the right plugins GST_PLUGIN_PATH must be set too.