How to use nvidia's `nvv4l2decoder ! nvvidconv` with appsink?

Hi,

I’m trying to use gstreamer to get some rtsp data.

I have a pipeline as the following:

pipeline_ok_1:

gst-launch-1.0 -v rtspsrc location="rtsp://somelink" ! rtph265depay ! h265parse ! avdec_h265 ! videoconvert !  appsink"

Please note that the decoder and converter are avdec_h265 ! videoconvert. It works but I can notice the CPU load increase.

So I want to use nvidia’s hardware accelerated gstreamer plugins like nvv4l2decoder and nvvidconv, so my pipeline now is like this:

pipeline_error_1:

gst-launch-1.0 rtspsrc location="rtsp://somelink" ! rtph265depay ! h265parse ! nvv4l2decoder ! nvvidconv !  appsink"

but I got this error

WARNING: erroneous pipeline: could not link nvvconv0 to appsink0

Then I guess maybe I can’t use nvvidconv, so I keep use videoconvert but use nvv4l2decoder, like this:

pipeline_error_2:

gst-launch-1.0 rtspsrc location="rtsp://somelink" ! rtph265depay ! h265parse ! nvv4l2decoder ! videoconvert !  appsink"

to my surprise, it now has error like this:

WARNING: erroneous pipeline: could not link videoconvert0 to appsink0

I’m surprised because videoconvert ! appsink used to work together in pipeline_ok_1.

My target is very simple: use hardware accelerated decoder/convert (either gstreamer or ffmpeg is ok) and then get the data and I need to process it later.

Thanks.

I found that if I use omxh265dec instead of nvv4l2decoder, the pipeline can work:

gst-launch-1.0 -v rtspsrc location="rtsp://somelink" ! rtph265depay ! h265parse ! omxh265dec! videoconvert !  appsink"

But I heard that in Orin (jetpack 5), omx* plug-ins are no longer available.

Hi,
For using appsink you would need to develop in C sample .It does not work in gst-launch-1.0 command. Please refer to this sample:
Gstreamer decode live video stream with the delay difference between gst-launch-1.0 command and appsink callback - #6 by DaneLLL

1 Like

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