Hi @Fiona.Chen,
I tested below two commands on Deepstream 6.1.1 and Deepstream 5.1. Difference between them is highlighted in bold:
We use command 2.
-
gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM)’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
-
gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM),format=(string)NV12’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
Below is the output after testing command 1 on Deepstream 5.1:
$ gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM)’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
Setting pipeline to PAUSED …
0:00:00.736287279 2385 0x55b43e4430 pylonsrc gstpylonsrc.c:2269:pylonc_print_camera_info: Status: Using camera “acA1300-200uc” (serial number: 22718385, id: 0). Custom ID: None
0:00:00.743068763 2385 0x55b43e4430 pylonsrc gstpylonsrc.c:1129:gst_pylonsrc_start: Setting resolution to 1280x1024.
0:00:00.751089280 2385 0x55b43e4430 pylonsrc gstpylonsrc.c:1253:gst_pylonsrc_start: Using RGB8 image format.
0:00:00.796298660 2385 0x55b43e4430 pylonsrc gstpylonsrc.c:2076:gst_pylonsrc_start: Initialised successfully.
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstPylonsrc:pylonsrc0.GstPad:src: caps = video/x-raw, format=(string)RGB, width=(int)1280, height=(int)1024, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/GstNvStreamMux:m.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)BGRx, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)BGRx
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)YUY2
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)YUY2
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)BGRx
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)BGRx, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstNvStreamMux:m.GstNvStreamPad:sink_0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)RGB, width=(int)1280, height=(int)1024, framerate=(fraction)0/1
ERROR: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Output window was closed
Additional debug info:
xvimagesink.c(555): gst_xv_image_sink_handle_xevents (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0
Execution ended after 0:00:05.977571638
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
Below is the output after testing command 2 on Deepstream 5.1:
$ gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM),format=(string)NV12’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
2022-10-27 10:57:41.219324: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.2
Setting pipeline to PAUSED …
0:00:07.122328859 30472 0x557eff9640 pylonsrc gstpylonsrc.c:2269:pylonc_print_camera_info: Status: Using camera “acA1300-200uc” (serial number: 22718385, id: 0). Custom ID: None
0:00:07.128717563 30472 0x557eff9640 pylonsrc gstpylonsrc.c:1129:gst_pylonsrc_start: Setting resolution to 1280x1024.
0:00:07.134291086 30472 0x557eff9640 pylonsrc gstpylonsrc.c:1253:gst_pylonsrc_start: Using RGB8 image format.
0:00:07.181063017 30472 0x557eff9640 pylonsrc gstpylonsrc.c:2076:gst_pylonsrc_start: Initialised successfully.
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
/GstPipeline:pipeline0/GstPylonsrc:pylonsrc0.GstPad:src: caps = video/x-raw, format=(string)RGB, width=(int)1280, height=(int)1024, framerate=(fraction)0/1
New clock: GstSystemClock
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12
/GstPipeline:pipeline0/GstNvStreamMux:m.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)NV12, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)NV12
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)YV12
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)YV12
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)NV12, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstNvStreamMux:m.GstNvStreamPad:sink_0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)BGRx
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)RGB, width=(int)1280, height=(int)1024, framerate=(fraction)0/1
ERROR: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Output window was closed
Additional debug info:
xvimagesink.c(555): gst_xv_image_sink_handle_xevents (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0
Execution ended after 0:00:16.249841291
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
Below is the output after testing command 1 on Deepstream 6.1.1:
$ gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM)’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
Setting pipeline to PAUSED …
0:00:00.640387298 1113275 0xaaaaefdb7550 pylonsrc gstpylonsrc.c:984:gst_pylonsrc_start: Camera id was set, but was ignored as only one camera was found.
0:00:00.859361260 1113275 0xaaaaefdb7550 pylonsrc gstpylonsrc.c:2269:pylonc_print_camera_info: Status: Using camera “acA1300-200uc” (serial number: 22718385, id: 0). Custom ID: None
0:00:00.867429209 1113275 0xaaaaefdb7550 pylonsrc gstpylonsrc.c:1129:gst_pylonsrc_start: Setting resolution to 1280x1024.
0:00:00.873976658 1113275 0xaaaaefdb7550 pylonsrc gstpylonsrc.c:1253:gst_pylonsrc_start: Using RGB8 image format.
0:00:00.932686762 1113275 0xaaaaefdb7550 pylonsrc gstpylonsrc.c:2076:gst_pylonsrc_start: Initialised successfully.
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstPylonsrc:pylonsrc0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/GstNvStreamMux:m.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, block-linear=(boolean)false, format=(string)YUY2
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, block-linear=(boolean)false, format=(string)YUY2
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstNvStreamMux:m.GstNvStreamPad:sink_0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB, block-linear=(boolean)false
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
ERROR: from element /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.075014453
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
Below is the output after testing command 2 on Deepstream 6.1.1:
$ gst-launch-1.0 -v pylonsrc imageformat=rgb8 camera=0 ! videoconvert ! nvvideoconvert nvbuf-memory-type=0 ! ‘video/x-raw(memory:NVMM),format=(string)NV12’ ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 live-source=1 ! nvvideoconvert ! videoconvert ! xvimagesink
Setting pipeline to PAUSED …
0:00:00.628218486 1113297 0xaaaacfa530a0 pylonsrc gstpylonsrc.c:984:gst_pylonsrc_start: Camera id was set, but was ignored as only one camera was found.
0:00:00.831860006 1113297 0xaaaacfa530a0 pylonsrc gstpylonsrc.c:2269:pylonc_print_camera_info: Status: Using camera “acA1300-200uc” (serial number: 22718385, id: 0). Custom ID: None
0:00:00.839680815 1113297 0xaaaacfa530a0 pylonsrc gstpylonsrc.c:1129:gst_pylonsrc_start: Setting resolution to 1280x1024.
0:00:00.846145413 1113297 0xaaaacfa530a0 pylonsrc gstpylonsrc.c:1253:gst_pylonsrc_start: Using RGB8 image format.
0:00:01.014256471 1113297 0xaaaacfa530a0 pylonsrc gstpylonsrc.c:2076:gst_pylonsrc_start: Initialised successfully.
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstPylonsrc:pylonsrc0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/GstNvStreamMux:m.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, block-linear=(boolean)false, format=(string)YV12
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, block-linear=(boolean)false, format=(string)YV12
/GstPipeline:pipeline0/GstVideoConvert:videoconvert1.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)0/1, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstNvStreamMux:m.GstNvStreamPad:sink_0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)NV12, block-linear=(boolean)false
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)0/1, format=(string)RGB
0:00:01.083583867 1113297 0xaaaacfa54860 ERROR nvvideoconvert gstnvvideoconvert.c:3750:gst_nvvideoconvert_transform: buffer transform failed
ERROR: from element /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.067359337
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
As you can see from the outputs, both the commands work on Deepstream 5.1 and do not work on Deepstream 6.1.1