Issues when seting up Gstreamer RTSP server on Orin Nano

I’ve tried to set up one RTSP server to stream H265 video captured from a USB camera. I’ve tried the following Gstreamer pipelines:

./test-launch “(v4l2src ! video/x-raw, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw, format=I420 ! x265enc ! video/x-h265, stream-format=(string)byte-stream ! h265parse ! rtph265pay name=pay0 pt=96 )”

./test-launch “(v4l2src ! video/x-raw, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=I420 ! nvv4l2h265enc ! video/x-h265, stream-format=(string)byte-stream ! h265parse ! rtph265pay name=pay0 pt=96 )”

And using the following pipeline on a PC to receive and display the H265 data:

gst-launch-1.0 rtspsrc latency=200 location=“rtsp://” ! rtph265depay ! h265parse ! nvh265dec ! autovideosink

These codes work well while using a Jetson Xavier NX or a Jetson AGX Orin as the RTSP server. However, when I switch to Orin Nano or use the AGX Orin to emulate Orin Nano, I got the following error on the client side:

C:\Users> gst-launch-1.0 rtspsrc latency=200 location=“rtsp://” ! rtph265depay ! h265parse ! nvh265dec ! autovideosink

(gst-launch-1.0:3800): GStreamer-WARNING **: 10:31:29.823: Failed to load plugin ‘E:\Library\GStreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstassrender.dll’: The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run ‘dumpbin -dependents’ (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.
Use Windows high-resolution clock, precision: 1 ms
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Got context from element ‘autovideosink0’: gst.d3d11.device.handle=context, device=(GstD3D11Device)“(GstD3D11Device)\ d3d11device3”, adapter=(uint)0, adapter-luid=(gint64)68929, device-id=(uint)9353, vendor-id=(uint)4318, hardware=(boolean)true, description=(string)“NVIDIA\ GeForce\ RTX\ 3060\ Ti”;
Got context from element ‘nvh265dec0’: gst.cuda.context=context, gst.cuda.context=(GstCudaContext)“(GstCudaContext)\ cudacontext1”, cuda-device-id=(uint)0;
Got context from element ‘nvh265dec0’:,“(GstGLDisplay)\ gldisplay0”;
Progress: (open) Opening Stream
Pipeline is PREROLLED …
Prerolled, waiting for progress to finish…
Progress: (connect) Connecting to rtsp://
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Unhandled error
Additional debug info:
…/gst/rtsp/gstrtspsrc.c(6962): gst_rtspsrc_send (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
Service Unavailable (503)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …

Does Orin Nano still have some limitations on H265 video encoding and streaming based on GStreamer?

Orin Nano has been flashed with Jetpack 5.1.1 by using the SDKManager.

There is no hardware encoder in Orin Nano. Please switch to use software encoder such as x265enc plugin.

Thanks for the info. Is there any plan to support the hardware encoder in Orin Nano recently?

This is hardware constraint of Orin Nano. If you need hardware encoder in your use-case, please use other Jetson platforms.

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