Could not link nvarguscamerasrc0 to nvstreammux0

Hi,

I’m trying to use nvstreammux in my own pipeline :

gst-launch-1.0 -v -e nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), width=1280, height=720, framerate=30/1, format=NV12’ ! nvstreammux batch-size=1 width=1280 height=720 ! fakesink -e
WARNING: erroneous pipeline: could not link nvarguscamerasrc0 to nvstreammux0, nvstreammux0 can’t handle caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, format=(string)NV12

gst-inspect-1.0 nvstreammux # works (version 4.0.2)

I tried deepstream-app and it works too. I generated the pipeline to check parameters and caps. Everything looks the same.

Why do I have “could not link nvarguscamerasrc0 to nvstreammux0” ?

Best regards

Hi,
Please set bufapi-version=true in nvarguscamerasrc.

Since there are many parameters, you may check if you can apply your usecase to deepstream-app directly. It is easier to modify the config file and run.

Thank you for the reply.

gst-launch-1.0 -v -e nvarguscamerasrc bufapi-version=true ! ‘video/x-raw(memory:NVMM), width=1280, height=720, framerate=30/1, format=NV12’ ! nvstreammux batch-size=1 width=1280 height=720 batched-push-timeout=40000 ! fakesink -e
WARNING: erroneous pipeline: could not link nvarguscamerasrc0 to nvstreammux0, nvstreammux0 can’t handle caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, format=(string)NV12

I tried to match also the properties reported with:

export GST_DEBUG_DUMP_DOT_DIR=/tmp ; deepstream-app -c deepstream_app_config_yoloV3.txt
gst-launch-1.0 -v -e nvarguscamerasrc do-timestamp=TRUE maxperf=TRUE bufapi-version=TRUE ! ‘video/x-raw(memory:NVMM), width=1280, height=720, framerate=30/1, format=NV12’ ! nvstreammux batch-size=1 width=1280 height=720 batched-push-timeout=40000 ! fakesink -e
WARNING: erroneous pipeline: could not link nvarguscamerasrc0 to nvstreammux0, nvstreammux0 can’t handle caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, format=(string)NV12

The problem persists.

Do you have any other hints?

Le mar. 24 mars 2020 à 00:56, DaneLLL via NVIDIA Developer Forums nvidia@discoursemail.com a écrit :

Hi,
We support Yolo modles in deepstream-app, please follow README in

deepstream_sdk_v4.0.2_jetson\sources\objectDetector_Yolo\README

To run default config file first. And then change the source to type=5
https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html#page/DeepStream%2520Development%2520Guide%2Fdeepstream_app_config.3.2.html%23wwpID0E0QB0HA

Hi,

As described in the initial post, deepstream-app (with Yolo and source0/type=5) works fine on my jetson board.

I would like to build my own pipeline using gst-launch-1.0.

Le mar. 24 mars 2020 à 10:43, DaneLLL via NVIDIA Developer Forums nvidia@discoursemail.com a écrit :

Hi,
May see if other users can give suggestion. As mentioned in #2, there are bunch of obligatory parameters you have to configure, still recommend run a C or python app.

Hi,
Please try

deepstream-4.0/samples/configs/deepstream-app$ gst-launch-1.0 nvarguscamerasrc bufapi-version=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! mx.sink_0 nvstreammux width=1920 height=1080 batch-size=1 name=mx ! nvinfer config-file-path=/home/nvidia/deepstream-4.0/samples/configs/deepstream-app/config_infer_primary_nano.txt ! nvvideoconvert ! nvdsosd ! nvoverlaysink sync=0

OK it works!

The magic is related to the explicit connection to the pad (mx.sink_0).
This is weird. I guess it’s because this pad is “on request”.

Thank you a lot.

@DaneLLL
I just changed the location of the config file

gst-launch-1.0 nvarguscamerasrc bufapi-version=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! mx.sink_0 nvstreammux width=1920 height=1080 batch-size=1 name=mx ! nvinfer config-file-path=/opt/nvidia/deepstream/deepstream-5.0/sources/Yolov3-spp/config_infer_primary_yoloV3.txt ! nvvideoconvert ! nvdsosd ! nvoverlaysink sync=0

I ran it, got no error but the program is stuck on this statement CONSUMER: Producer has connected; continuing.
Its just stalling on that ,

Later I ran the other python script (without display) and the deep-stream-app.txt (with display) file and that worked fine

Hi,
So it works with this config file

/opt/nvidia/deepstream/deepstream-5.1/samples/configs/deepstream-app/config_infer_primary_nano.txt

and does not work with config_infer_primary_yoloV3.txt. Is it correct?

No I get the same error when running with config_infer_primary_nano.txt

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 2 
   Output Stream W = 1920 H = 1080 
   seconds to Run    = 0 
   Frame Rate = 29.999999 
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.


And then it just stalls on that step

Hi,
After initializing the model, you should see these Argus prints and can see camera preview. Do you check the TV output?

“Tv” output can you clarify ? If its the display that I use, then I use VNC viewer connected to my laptop through ethernet.

Hi,
Not sure why you cannot see the content with nvoverlaysink. You may try to replace nvoverlaysink with nveglglessink. Or encoding to a video file and check the file.