Can nvstreammux take video/x-raw and output video/x-raw(NVMM)?

Please provide complete information as applicable to your setup.

Hardware Platform (Jetson / GPU)

  • RTX3090ti

DeepStream Version

  • 7.0

According to Gst-nvstreammux New, it can take video/x-raw.

$ rm ~/.cache/gstreamer-1.0/registry.x86_64.bin 
$ export USE_NEW_NVSTREAMMUX="yes"
$ gst-inspect-1.0 nvstreammux

...

Pad Templates:
  SINK template: 'sink_%u'
    Availability: On request
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA, (string)I420 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw
                 format: { (string)NV12, (string)RGBA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      audio/x-raw
                 format: { (string)S16LE, (string)F32LE }
                 layout: interleaved
               channels: [ 1, 2147483647 ]
                   rate: [ 1, 2147483647 ]
      audio/x-raw(memory:NVMM)
                 format: { (string)S16LE, (string)F32LE }
                 layout: interleaved
               channels: [ 1, 2147483647 ]
                   rate: [ 1, 2147483647 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA, (string)I420 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      audio/x-raw(memory:NVMM)
                 format: { (string)S16LE, (string)F32LE }
                 layout: interleaved
               channels: [ 1, 2147483647 ]
                   rate: [ 1, 2147483647 ]

The old, or default, nvstreammux is not capable of taking video/x-raw.

Pad Templates:
  SINK template: 'sink_%u'
    Availability: On request
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA, (string)I420 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA, (string)I420 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

When using the defeault nvstreammux, I have to use nvvideoconvert to be compatible with nvstreammux’s video/x-raw(memory:NVMM).

With nvstreammux new, can we remove nvvideoconvert and directly connect to nvinfer?

# OLD
appsrc (x-raw/video, RGBA) 
-> nvvideoconvert (x-raw/video, RGBA -> x-raw/video(NVMM), RGBA) 
-> nvstreammux (x-raw/video(NVMM), RGBA)
-> nvinfer
-> ...

# NEW
appsrc (x-raw/video, RGBA) 
-> nvstreammux (x-raw/video, RGBA -> x-raw/video(NVMM), RGBA) 
-> nvinver
-> ...

No. Please use nvvideoconvert Gst-nvvideoconvert — DeepStream documentation 6.4 documentation to convert video/x-raw to video/x-raw(memory:NVMM) before new nvstreammux.

1 Like

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