Low camera frame rate

Hi,
Could you try gst-launch-1.0 command like:

$ gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 bufapi-version=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=60/1' ! nvvideoconvert ! 'video/x-raw(memory:NVMM),format=NV12' ! mx.sink_0 nvv4l2camerasrc device=/dev/video1 bufapi-version=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=60/1' ! nvvideoconvert ! 'video/x-raw(memory:NVMM),format=NV12' ! mx.sink_1 nvstreammux width=1920 height=1080 batch-size=2 live-source=1 name=mx ! nvinfer config-file-path=/opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app/config_infer_primary.txt batch-size=2 ! nvvideoconvert ! nvmultistreamtiler width=1920 height=1080 rows=1 columns=2 ! nvvideoconvert ! nvdsosd ! nvegltransform ! nveglglessink sync=0

The above pipeline is with two sources. Please extend to 8 sources and give it a try.

Hi DaneLLL,

It works with 8 sources but we still have some questions.

  1. How to implement in deepstream-app and perform its frame rate per channel?
  2. We cannot switch to single window when we click certain one on display wall.

Thanks,
David

Hi,

Using nvv4l2camerasrc + nveglglessink in deepstream-app, it works for single source. But for multiple sources, it shows whole black as your observation. We would need internal teams’ help to do further investigation on this and may take some time. For a quick solution, we suggest use gst_parse_launch() to launch the pipeline. You may refer to the sample of using the function:
What is maximum video encoding resolution in pixels? - #11 by DaneLLL

For showing specific source, you can call g_object_set() to set the property in nvmultistreamtiler:

  show-source         : ID of the source to be shown. If -1 all the sources will be tiled else only a single source will be scaled into the output buffer.
                        flags: readable, writable
                        Integer. Range: -1 - 2147483647 Default: -1

Hi DaneLLL,

Is there any update of nvv4l2camerasrc + nveglglessink for multi source?

Or is there any sample of using gst_parse_launch() to launch a csi stream?
As using launch_string below for gst_parse_launch(), the mp4 file did not save any data?

<< "appsrc name=mysource ! "
<< "v4l2src device=/dev/video" << csi_num << " ! "
<< "video/x-raw,width="<< w <<",height="<< h <<"format=(string)UYVY ! "
<< "nvvidconv ! video/x-raw(memory:NVMM) ! omxh264enc ! h264parse ! qtmux ! "
<< "filesink location= c.mp4 ";

Thank you for any suggestion,

Hi,

It is tracked in internal bug system. Still under investigation and may take some time. On DS5.0.0 or 5.0.1, you would need to use gst_parse_launch().

Please try the pipeline and check if you can see video preview:

<< "nvv4l2camerasrc device=/dev/video" << csi_num << " ! "
<< "video/x-raw(memory:NVMM),width="<< w <<",height="<< h <<",format=(string)UYVY ! "
<< "nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12 ! "
<< "nvoverlaysink ";

Hi DaneLLL,

Is there any update of nvv4l2camerasrc + nveglglessink for multi source?

Thank you for providing the pipeline below and it works.

<< “nvv4l2camerasrc device=/dev/video” << csi_num << " ! "
<< “video/x-raw(memory:NVMM),width=”<< w <<“,height=”<< h <<",format=(string)UYVY ! "
<< "nvvideoconvert ! video/x-raw(memory:NVMM)format=NV12 ! "
<< "nvoverlaysink ";


However, the "," before format might cause different result. Is it reasonable?

Thank you,

To have Deepstream supports nvv4l2camerasrc + nveglglessink for multi source is a new feature to be implemented, the release schedule is under planning.

Hi,
It looks like , is missing in the pipeline. The correct string is ",format=(string)UYVY ! "

Hi

We just realized the whole black display is the main problem of using nvv4l2camerasrc + nveglglessink in deepstream-app with multiple sources.

The black page also takes the event handle, click the black page could switch to single window.
However, we could not find a way to avoid the black page.

Attached the log as running 8 channels with black page showed.
And 2 channels without black page showed.

Thank you for any advice,
msg_ds5_show_8camera_error.txt (13.7 KB)

Hi,
The issue is under investigation. Suggest you use gst-launch-1.0 command.

If you have to use deepstream-app, the working pipeline is v4l2src + nveglglessink. There is a memory copy which may impact the performance. Have suggested you run sudo nvpmodel -m 0, sudo jetson_clocks, and enable VIC at max clock. In this case it is not able to achieve 8 1080p60 per your test result. Probably you may try 7 sources, 6 sources.