Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) nano
• DeepStream Version 7.0
• JetPack Version (valid for Jetson only) 6.0
• TensorRT Version8.6.2.3-1+cuda12.2
• NVIDIA GPU Driver Version (valid for GPU only) NVIDIA-SMI 540.2.0
• Issue Type( questions, new requirements, bugs)
tion description)**
Followed instruction : deepstream_python_apps/apps/deepstream-imagedata-multistream/deepstream_imagedata-multistream.py at master · NVIDIA-AI-IOT/deepstream_python_apps · GitHub
Traceback (most recent call last):
File “deepstream.py”, line 165, in tracker_src_pad_buffer_probe
n_frame = pyds.get_nvds_buf_surface(hash(gst_buffer), frame_meta.batch_id)
RuntimeError: get_nvds_buf_Surface: Currently we only support RGBA color Format
How to save ROI ?
def main():
Gst.init(None)
loop = GLib.MainLoop()
# Create the pipeline
pipeline = Gst.Pipeline()
if not pipeline:
sys.stderr.write('ERROR: Failed to create pipeline\n')
sys.exit(1)
# Create and add the streammux element
streammux = Gst.ElementFactory.make('nvstreammux', 'nvstreammux')
if not streammux:
sys.stderr.write('ERROR: Failed to create nvstreammux\n')
sys.exit(1)
pipeline.add(streammux)
# Create and add the source_bin
source_bin = create_uridecode_bin(0, SOURCE, streammux)
if not source_bin:
sys.stderr.write('ERROR: Failed to create source_bin\n')
sys.exit(1)
pipeline.add(source_bin)
# Create and add the primary inference element (pgie)
pgie = Gst.ElementFactory.make('nvinfer', 'pgie')
if not pgie:
sys.stderr.write('ERROR: Failed to create nvinfer\n')
sys.exit(1)
# Create and add the tracker element
tracker = Gst.ElementFactory.make('nvtracker', 'nvtracker')
if not tracker:
sys.stderr.write('ERROR: Failed to create nvtracker\n')
sys.exit(1)
# Create and add the nvvideoconvert element
converter = Gst.ElementFactory.make('nvvideoconvert', 'nvvideoconvert')
if not converter:
sys.stderr.write('ERROR: Failed to create nvvideoconvert\n')
sys.exit(1)
pipeline.add(converter)
# Create and add the capsfilter element
capsfilter = Gst.ElementFactory.make('capsfilter', 'capsfilter')
if not capsfilter:
sys.stderr.write('ERROR: Failed to create capsfilter\n')
sys.exit(1)
capsfilter.set_property('caps', Gst.Caps.from_string('video/x-raw(memory:NVMM), format=RGBA'))
pipeline.add(capsfilter)
# Create and add the on-screen display element (osd)
osd = Gst.ElementFactory.make('nvdsosd', 'nvdsosd')
if not osd:
sys.stderr.write('ERROR: Failed to create nvdsosd\n')
sys.exit(1)
# Create and add the sink element
sink = None
if is_aarch64():
sink = Gst.ElementFactory.make('nv3dsink', 'nv3dsink')
if not sink:
sys.stderr.write('ERROR: Failed to create nv3dsink\n')
sys.exit(1)
else:
sink = Gst.ElementFactory.make('nveglglessink', 'nveglglessink')
if not sink:
sys.stderr.write('ERROR: Failed to create nveglglessink\n')
sys.exit(1)
sink.set_property('async', 0)
sink.set_property('sync', 0)
sink.set_property('qos', 0)
pipeline.add(sink)
# Set properties for elements
streammux.set_property('batch-size', STREAMMUX_BATCH_SIZE)
streammux.set_property('batched-push-timeout', 25000)
streammux.set_property('width', STREAMMUX_WIDTH)
streammux.set_property('height', STREAMMUX_HEIGHT)
streammux.set_property('enable-padding', 0)
streammux.set_property('live-source', 1)
streammux.set_property('attach-sys-ts', 1)
pgie.set_property('config-file-path', CONFIG_INFER)
pgie.set_property('qos', 0)
tracker.set_property('tracker-width', 640)
tracker.set_property('tracker-height', 384)
tracker.set_property('ll-lib-file', '/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so')
tracker.set_property('ll-config-file', '/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml')
tracker.set_property('display-tracking-id', 1)
tracker.set_property('qos', 0)
osd.set_property('process-mode', int(pyds.MODE_GPU))
osd.set_property('qos', 0)
if 'file://' in SOURCE:
streammux.set_property('live-source', 0)
if tracker.find_property('enable_batch_process') is not None:
tracker.set_property('enable_batch_process', 1)
if tracker.find_property('enable_past_frame') is not None:
tracker.set_property('enable_past_frame', 1)
if not is_aarch64():
streammux.set_property('nvbuf-memory-type', 0)
streammux.set_property('gpu_id', GPU_ID)
pgie.set_property('gpu_id', GPU_ID)
tracker.set_property('gpu_id', GPU_ID)
converter.set_property('nvbuf-memory-type', 0)
converter.set_property('gpu_id', GPU_ID)
osd.set_property('gpu_id', GPU_ID)
# Add elements to the pipeline
pipeline.add(pgie)
pipeline.add(tracker)
pipeline.add(converter)
pipeline.add(capsfilter)
pipeline.add(osd)
pipeline.add(sink)
# Link the elements in the pipeline
streammux.link(pgie)
pgie.link(tracker)
tracker.link(converter)
converter.link(capsfilter)
capsfilter.link(osd)
osd.link(sink)
# Set up bus message handling
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect('message', bus_call, loop)
# Add buffer probe to tracker's src pad
tracker_src_pad = tracker.get_static_pad('src')
if not tracker_src_pad:
sys.stderr.write('ERROR: Failed to get tracker src pad\n')
sys.exit(1)
else:
tracker_src_pad.add_probe(Gst.PadProbeType.BUFFER, tracker_src_pad_buffer_probe, 0)
# Start the pipeline
pipeline.set_state(Gst.State.PLAYING)
sys.stdout.write('\n')
try:
loop.run()
except:
pass
# Clean up
pipeline.set_state(Gst.State.NULL)
sys.stdout.write('\n')