Playing an RTMP stream using GStreamer

I am new to GStreamer and I am having some trouble getting a pipeline to work. I am trying to bring an RTMP stream into an application using a GStreamer pipeline. The source is ffplayout-engine to NGINX server using RTMP. It plays back fine in VLC, so I know the RTMP stream is working.

Any suggestions as to what I might try would be appreciated.

An ffprobe on the Jetson gives the following

Input #0, flv, from ‘rtmp://192.168.2.113/live/stream’:
Metadata:
Server : NGINX RTMP (GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server)
displayWidth : 1024
displayHeight : 576
fps : 25
profile :
level :
Duration: 00:00:00.00, start: 717.577000, bitrate: N/A
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
Stream #0:1: Video: h264 (Main), yuv420p(progressive), 1024x576 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc

A test with gst-launch-1.0 gives the following output

GST_DEBUG=3 gst-launch-1.0 -v rtmpsrc location=rtmp://192.168.2.113/live/stream do-timestamp=true ! queue2 ! flvdemux name=demux demux.video ! queue ! h264parse ! nvv4l2decoder ! nv3dsink -e
Setting pipeline to PAUSED …
Opening in BLOCKING MODE
0:00:00.144399674 5607 0x55a090c500 WARN v4l2 gstv4l2object.c:4430:gst_v4l2_object_probe_caps:nvv4l2decoder0:src Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.144489051 5607 0x55a090c500 WARN v4l2 gstv4l2object.c:2372:gst_v4l2_object_add_interlace_mode:0x55a08ffea0 Failed to determine interlace mode
Pipeline is PREROLLING …
0:00:01.677870439 5607 0x55a089ce80 WARN flvdemux gstflvdemux.c:659:gst_flv_demux_parse_tag_script: failed reading a tag, skipping
0:00:01.843260238 5607 0x55a089cf70 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop: error: Internal data stream error.
0:00:01.843413888 5607 0x55a089cf70 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop: error: streaming stopped, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …

Hi,
A general usecase is RTSP. We have collected the steps in
Jetson Nano FAQ
Q: Is there any example of running RTSP streaming?

We have less experience in RTMP. Could you go to gstreamer forum to get further suggestion? You may ask with software decoder avdec_h264. Once you get a working pipeline, it should work fine to replace with hardware decoder.