Nvvidconv and videoconvert


I use gstreamer pipe as shown below:

nvv4l2camerasrc device=/dev/video0 !
video/x-raw(memory:NVMM),format=UYVY,width=1920,height=1080,framerate=30/1 !
nvvidconv !
video/x-raw,format=BGRx !
videoconvert !
video/x-raw, format=BGR !
appsink drop=1

With this pipe, I capture frame images from my camera. So far so good.

But I’d like to level up my understandings about nvvidconv, videoconvert and nvv4l2camerasrc.

  1. How can I investigate which RGB or BGR format nvvidconv or videoconvert support?
  2. Currently the appsink puts BGR format. Can I get RGB format from the appsink?
  3. nvvidconv is said to use HW VIC. What is VIC? Is it different to GPU?
  4. Does videoconvert use CPU? Can I make it use GPU?
  5. When I watch jtop while this pipe works, the GPU is not used a lot. Almost it is not used at all. Is this intended behavior?

Thank you very much!!


You can execute

$ gst-inspect-1.0 nvvidconv

For working with OpenCV, frame data in BGR format is required. The format is fixed in OpenCV.

Yes, it is hardware converter. It is an individual hardware block. For further detail, please check Figure 1.1 in Orin technical reference manual:

Yes, it is software converter uses CPU. Since hardware converter does not support 24-bit BGR format, would need to use software converter to get BGR.

This is expected since nvvidconv plugin uses hardware converter, and videoconvert plugin uses CPU.

1 Like

Thanks for the kind answer!
For my question #2, yes I use opencv but, in another circumstance I need RGB format frame image.
For this circumstance, can I get RGB format frame image from appsink?

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