Problems extending RTSP decode source bin to support JPEG encoding

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
JetPack 5.1
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
questions & possible bug?
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)

We’re trying to extend an RTSP Source bin implementation to support JPEG encoding. Our solution, based on the original topic posted here, seems to work well for dGPU but fails on Jetson.

We’ve been able to reproduce the failure with the following gst-launch command.

gst-launch-1.0 rtspsrc location=rtsp:// ! rtpjpegdepay! jpegparse ! nvv4l2decoder ! nvvideoconvert ! video/x-raw,format=RGBA ! videoconvert! autovideosink

Here’s the log produced when running on PC/dGPU … working case.
pc_rtsp_jpeg.log (241.4 KB)

and when running on Jetson … failing case.
jetson_rtsp_jpeg.log (135.6 KB)

Any help on this will be greatly appreciated.

1 Like

libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate

Can you replace the autovideosink to fakesink to test the pipeline in Jeston device?

Hello Chen

libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate

This warning is probably caused by running gst-launch after connecting to jetson with the ssh -Y option on the pc.

I will send you the execution log based on the fakesink you requested.

rtspjpeg_jetson_fakesink.log (448.0 KB)

Thank you

You only need to enable decoder log by “export GST_DEBUG=v4l2videodec:5”.


rtspjpeg_dgpu_fakesink.log (29.2 KB)

From the log, decoder works well.

sorry. I sent you the dgpu log

rtspjpeg_jetson_fakesink.log (112.1 KB)

After various tests, it works when I put the mjpeg =1 option in nvv4l2decoder, but the dgpu and nvv4l2decoder have the same version, but the configuration is slightly different.

gst-launch-1.0 rtspsrc location=rtsp:// latency=100 ! rtpjpegdepay! jpegparse !
nvv4l2decoder mjpeg=1 ! nvvideoconvert ! video/x-raw,format=RGBA ! videoconvert! autovideosink

How can I deal with it?

@yeongjae1 good find. I should have thought of trying this. The logic is similar to the deepstream_image_decode_app.c example which has…

  if ((!strcmp (dot+1, "mjpeg")) || (!strcmp (dot+1, "mjpg")) || (!strcmp (dot+1, "mp4")) || (multi_file_src == TRUE))
    if(prop.integrated) {
      g_object_set (G_OBJECT (decoder), "mjpeg", 1, NULL);
1 Like

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