Orin Nano Deepstream RTSP encoding change

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) : Jetson Orin Nano 8GB Developer kit
• DeepStream Version : Deepstream 6.3
• JetPack Version (valid for Jetson only) : JetPack SDK 5.1.2
• TensorRT Version : TensorRT 8.5.2-1+cuda11.4
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs) Encoder change
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

I want to run Yolov5 via python binding with Orin nano board and pass the results to rtsp server. However, in the case of orin nano, nvv4l2h264enc is not supported hardware-wise, so I searched for information and found an encoder that can solve the problem through software. It’s x264enc, but it’s still giving me an error. Is there anyone who can help?

The code is as follows.

def main(args):

global poly, ROI_line, roi_factor,obj_counter_array, obj_ids_array,obj_counter
global timestamp, ROI_Area, loitering_time_check, loitering_time_check_arr, frame_last_check_time, stop_key, zero_key, time_format, intrusion_start_fcheck

# Check input arguments
number_sources = len(args)

# Standard GStreamer initialization
Gst.init(None)

# Create gstreamer elements */
# Create Pipeline element that will form a connection of other elements
print("Creating Pipeline \n ")
pipeline = Gst.Pipeline()
is_live = False

if not pipeline:
    sys.stderr.write(" Unable to create Pipeline \n")
print("Creating streamux \n ")

# Create nvstreammux instance to form batches from one or more sources.
streammux = Gst.ElementFactory.make("nvstreammux", "Stream-muxer")
if not streammux:
    sys.stderr.write(" Unable to create NvStreamMux \n")

pipeline.add(streammux)
for i in range(number_sources):
    print("Creating source_bin ", i, " \n ")
    uri_name = args[i]
    if uri_name.find("rtsp://") == 0:
        is_live = True
    source_bin = create_source_bin(i, uri_name)
    if not source_bin:
        sys.stderr.write("Unable to create source bin \n")
    pipeline.add(source_bin)
    padname = "sink_%u" % i
    sinkpad = streammux.get_request_pad(padname)
    if not sinkpad:
        sys.stderr.write("Unable to create sink pad bin \n")
    srcpad = source_bin.get_static_pad("src")
    if not srcpad:
        sys.stderr.write("Unable to create src pad bin \n")
    srcpad.link(sinkpad)

print("Creating Pgie \n ")
if ts_from_rtsp:
    streammux.set_property("attach-sys-ts", 0)
    
if gie=="nvinfer":
    pgie = Gst.ElementFactory.make("nvinfer", "primary-inference")
else:
    pgie = Gst.ElementFactory.make("nvinferserver", "primary-inference")
if not pgie:
    sys.stderr.write(" Unable to create pgie \n")
    
tracker = Gst.ElementFactory.make("nvtracker", "tracker")
if not tracker:
    sys.stderr.write(" Unable to create tracker \n")
    
print("Creating tiler \n ")
tiler = Gst.ElementFactory.make("nvmultistreamtiler", "nvtiler")
if not tiler:
    sys.stderr.write(" Unable to create tiler \n")
print("Creating nvvidconv \n ")
nvvidconv = Gst.ElementFactory.make("nvvideoconvert", "convertor")
if not nvvidconv:
    sys.stderr.write(" Unable to create nvvidconv \n")
print("Creating nvosd \n ")
nvosd = Gst.ElementFactory.make("nvdsosd", "onscreendisplay")
if not nvosd:
    sys.stderr.write(" Unable to create nvosd \n")
nvvidconv_postosd = Gst.ElementFactory.make(
    "nvvideoconvert", "convertor_postosd")
if not nvvidconv_postosd:
    sys.stderr.write(" Unable to create nvvidconv_postosd \n")

# Create a caps filter
caps = Gst.ElementFactory.make("capsfilter", "filter")
caps.set_property(
    "caps", Gst.Caps.from_string("video/x-raw(memory:NVMM), format=I420")
)

# Make the encoder
if codec == "H264":
    #encoder = Gst.ElementFactory.make("nvv4l2h264enc", "encoder")
    encoder = Gst.ElementFactory.make("x264enc", "encoder")
    print("Creating H264 Encoder")
elif codec == "H265":
    encoder = Gst.ElementFactory.make("x265enc", "encoder")
    print("Creating H265 Encoder")
if not encoder:
    sys.stderr.write(" Unable to create encoder")
encoder.set_property("bitrate", bitrate)
#if is_aarch64():
    #encoder.set_property("preset-level", 1)
    #encoder.set_property("insert-sps-pps", 1)
    #encoder.set_property("bufapi-version", 1)

# Make the payload-encode video into RTP packets
if codec == "H264":
    rtppay = Gst.ElementFactory.make("rtph264pay", "rtppay")
    print("Creating H264 rtppay")
elif codec == "H265":
    rtppay = Gst.ElementFactory.make("rtph265pay", "rtppay")
    print("Creating H265 rtppay")
if not rtppay:
    sys.stderr.write(" Unable to create rtppay")

# Make the UDP sink
updsink_port_num = 5400
sink = Gst.ElementFactory.make("udpsink", "udpsink")
if not sink:
    sys.stderr.write(" Unable to create udpsink")

sink.set_property("host", "224.224.255.255")
sink.set_property("port", updsink_port_num)
sink.set_property("async", False)
sink.set_property("sync", 1)

streammux.set_property("width", 1920)
streammux.set_property("height", 1080)
streammux.set_property("batch-size", 1)
streammux.set_property("batched-push-timeout", 4000000)

pgie.set_property('config-file-path', "config_infer_primary_yoloV5.txt")

#Set properties of tracker
config = configparser.ConfigParser()
config.read('tracker_config.txt')    
config.sections()

for key in config['tracker']:
    if key == 'tracker-width' :
        tracker_width = config.getint('tracker', key)
        tracker.set_property('tracker-width', tracker_width)
    if key == 'tracker-height' :
        tracker_height = config.getint('tracker', key)
        tracker.set_property('tracker-height', tracker_height)
    if key == 'gpu-id' :
        tracker_gpu_id = config.getint('tracker', key)
        tracker.set_property('gpu_id', tracker_gpu_id)
    if key == 'll-lib-file' :
        tracker_ll_lib_file = config.get('tracker', key)
        tracker.set_property('ll-lib-file', tracker_ll_lib_file)
    if key == 'll-config-file' :
        tracker_ll_config_file = config.get('tracker', key)
        tracker.set_property('ll-config-file', tracker_ll_config_file)
    if key == 'enable-batch-process' :
        tracker_enable_batch_process = config.getint('tracker', key)
        tracker.set_property('enable_batch_process', tracker_enable_batch_process)
    if key == 'enable-past-frame' :
        tracker_enable_past_frame = config.getint('tracker', key)
        tracker.set_property('enable_past_frame', tracker_enable_past_frame)
    # tracker.set_property('tracker-width', 640)
    # tracker.set_property('tracker-height', 384)


pgie_batch_size = pgie.get_property("batch-size")
if pgie_batch_size != number_sources:
    print(
        "WARNING: Overriding infer-config batch-size",
        pgie_batch_size,
        " with number of sources ",
        number_sources,
        " \n",
    )
    pgie.set_property("batch-size", number_sources)

print("Adding elements to Pipeline \n")
tiler_rows = int(math.sqrt(number_sources))
tiler_columns = int(math.ceil((1.0 * number_sources) / tiler_rows))
tiler.set_property("rows", tiler_rows)
tiler.set_property("columns", tiler_columns)
tiler.set_property("width", TILED_OUTPUT_WIDTH)
tiler.set_property("height", TILED_OUTPUT_HEIGHT)
sink.set_property("qos", 0)

pipeline.add(pgie)
pipeline.add(tiler)
pipeline.add(nvvidconv)
pipeline.add(tracker)
pipeline.add(nvosd)
pipeline.add(nvvidconv_postosd)
pipeline.add(caps)
pipeline.add(encoder)
pipeline.add(rtppay)
pipeline.add(sink)

streammux.link(pgie)
pgie.link(tracker)
tracker.link(nvvidconv)
pgie.link(nvvidconv)
nvvidconv.link(tiler)
tiler.link(nvosd)
nvosd.link(nvvidconv_postosd)
nvvidconv_postosd.link(caps)
caps.link(encoder)
encoder.link(rtppay)
rtppay.link(sink)

# create an event loop and feed gstreamer bus mesages to it
loop = GLib.MainLoop()
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect("message", bus_call, loop)


osdsinkpad = nvosd.get_static_pad("sink")
if not osdsinkpad:
    sys.stderr.write(" Unable to get sink pad of nvosd \n")

osdsinkpad.add_probe(Gst.PadProbeType.BUFFER, tiler_src_pad_buffer_probe, 0)

# Start streaming
rtsp_port_num = 8554

server = GstRtspServer.RTSPServer.new()
server.props.service = "%d" % rtsp_port_num
server.attach(None)

factory = GstRtspServer.RTSPMediaFactory.new()
factory.set_launch(
    '( udpsrc name=pay0 port=%d buffer-size=524288 caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=(string)%s, payload=96 " )'
    % (updsink_port_num, codec)
)
factory.set_shared(True)
server.get_mount_points().add_factory("/ds-test", factory)

print(
    "\n *** DeepStream: Launched RTSP Streaming at rtsp://localhost:%d/ds-test ***\n\n"
    % rtsp_port_num
)

# start play back and listen to events
print("Starting pipeline \n")
pipeline.set_state(Gst.State.PLAYING)
try:
    loop.run()
except BaseException:
    pass
# cleanup
pipeline.set_state(Gst.State.NULL)

ps. Currently, the above code is executed, but the video is not played even when entering the rtspserver address.

There are some errors in your code
1.Memory type need accept by cpu

caps = Gst.ElementFactory.make("capsfilter", "filter")
caps.set_property(
    "caps", Gst.Caps.from_string("video/x-raw, format=I420")
)

2.Give a wrong pipeline.

should be as below.

pgie.link(tracker)
tracker.link(nvvidconv)
nvvidconv.link(tiler)

I have tried your code ,after modify these errors, It can output rtsp stream normal.

1 Like

Another question, tracker is unnecessary in your pipeline.

hello. Thank you very much for answering my question.

I changed the code as in the answer, but it still runs, but I cannot see streaming video when connected to the local host RTSP address.

Is there something I’m doing wrong or missing?

The log when running is as follows.


Creating Pipeline

Creating streamux

Creating source_bin 0

Creating source bin
source-bin-00
Creating Pgie

Creating tiler

Creating nvvidconv

Creating nvosd

Creating H265 Encoder
deepstream_rtsp_roi_tracking.py:555: Warning: value “4000000” of type ‘guint’ is invalid or out of range for property ‘bitrate’ of type ‘guint’
encoder.set_property(“bitrate”, bitrate)
Creating H265 rtppay
Adding elements to Pipeline

*** DeepStream: Launched RTSP Streaming at rtsp://localhost:8554/ds-test ***

Starting pipeline

gstnvtracker: Loading low-level lib at ./config/libnvds_nvmultiobjecttracker.so
[NvMultiObjectTracker] Initialized
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:03.309966569 47830 0x26f28130 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger: NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1988> [UID = 1]: deserialized trt engine from :/home/kammk/CCTV/DeepStream-Python/model_b4_gpu0_fp32.engine
INFO: [FullDims Engine Info]: layers num: 4
0 INPUT kFLOAT input 3x1280x1280 min: 1x3x1280x1280 opt: 4x3x1280x1280 Max: 4x3x1280x1280
1 OUTPUT kFLOAT boxes 100800x4 min: 0 opt: 0 Max: 0
2 OUTPUT kFLOAT scores 100800x1 min: 0 opt: 0 Max: 0
3 OUTPUT kFLOAT classes 100800x1 min: 0 opt: 0 Max: 0

0:00:03.520491834 47830 0x26f28130 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger: NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2091> [UID = 1]: Use deserialized engine model: /home/kammk/CCTV/DeepStream-Python/model_b4_gpu0_fp32.engine
0:00:03.537596405 47830 0x26f28130 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus: [UID 1]: Load new model:config_infer_primary_yoloV5.txt sucessfully
Decodebin child added: source

Decodebin child added: decodebin0

Decodebin child added: rtph264depay0

Decodebin child added: h264parse0

Decodebin child added: capsfilter0

Decodebin child added: nvv4l2decoder0

Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NvMMLiteBlockCreate : Block : BlockType = 261
In cb_newpad

gstname= video/x-raw
features= <Gst.CapsFeatures object at 0xffff4addc340 (GstCapsFeatures at 0xfffee00cd480)>
sys:1: Warning: g_object_get_is_valid_property: object class ‘GstUDPSrc’ has no property named ‘pt’

result :

Maybe your mean is 4000k(4M) ? I have tired x264enc, You can test it first for the moment.

 gst-inspect-1.0 x265enc

bitrate             : Bitrate in kbit/sec
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 102400 Default: 2048

You can use the following cli for test, dump rtsp stream to mkv.

gst-launch-1.0 -e rtspsrc location=rtsp://xxxx ! application/x-rtp, media=video, encoding-name=H264  ! queue ! rtph264depay ! h264parse ! matroskamux ! filesink location=received_h264.mkv

Thank you for your reply.

I tried gst-inspect-1.0 x264enc command and confirmed the same bitrate.

I also successfully tested dumping the gst-launch-1.0 rtsp stream to an mkv file via cli.

However, the problem code is still not running.

Can you use the sample model and stream for testing?

stream

 file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264

gie

# pgie.set_property('config-file-path', "config_infer_primary_yoloV5.txt")
pgie.set_property('config-file-path', "dstest2_pgie_config.txt")

then dump log use the following cli.

GST_DEBUG=3 python3 you_app.py 

Yes, of course. Below are the results of a run using a sample model and stream for testing. Thank you for your interest and replies.

GST_DEBUG=3 python3 my app.py -i file:///opt/nvidia/deepstream/deepstream-6.3/samples/streams/sample_720p.h264
Creating Pipeline 

Creating streamux 

Creating source_bin  0  

Creating source bin
source-bin-00
Creating Pgie 

Creating tiler 

Creating nvvidconv 

Creating nvosd 

Creating H265 Encoder
deepstream_rtsp_roi_tracking.py:555: Warning: value "4000000" of type 'guint' is invalid or out of range for property 'bitrate' of type 'guint'
  encoder.set_property("bitrate", bitrate)
Creating H265 rtppay
Adding elements to Pipeline 


*** DeepStream: Launched RTSP Streaming at rtsp://localhost:8554/ds-test ***


Starting pipeline 

gstnvtracker: Loading low-level lib at ./config/libnvds_nvmultiobjecttracker.so
[NvMultiObjectTracker] Initialized
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:03.399651791 70491     0x35b61730 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1988> [UID = 1]: deserialized trt engine from :/home/kammk/CCTV/DeepStream-Python/model_b4_gpu0_fp32.engine
INFO: [FullDims Engine Info]: layers num: 4
0   INPUT  kFLOAT input           3x1280x1280     min: 1x3x1280x1280   opt: 4x3x1280x1280   Max: 4x3x1280x1280   
1   OUTPUT kFLOAT boxes           100800x4        min: 0               opt: 0               Max: 0               
2   OUTPUT kFLOAT scores          100800x1        min: 0               opt: 0               Max: 0               
3   OUTPUT kFLOAT classes         100800x1        min: 0               opt: 0               Max: 0               

0:00:03.602885859 70491     0x35b61730 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2091> [UID = 1]: Use deserialized engine model: /home/kammk/CCTV/DeepStream-Python/model_b4_gpu0_fp32.engine
0:00:03.620172367 70491     0x35b61730 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:config_infer_primary_yoloV5.txt sucessfully
0:00:03.621012897 70491     0x35b61730 WARN                 basesrc gstbasesrc.c:3600:gst_base_src_start_complete:<source> pad not activated yet
Decodebin child added: source 

Decodebin child added: decodebin0 

0:00:03.623174254 70491     0x35b61730 WARN                 basesrc gstbasesrc.c:3600:gst_base_src_start_complete:<source> pad not activated yet
Decodebin child added: h264parse0 

Decodebin child added: capsfilter0 

Decodebin child added: nvv4l2decoder0 

Opening in BLOCKING MODE 
0:00:03.828661074 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:4561:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:03.828703443 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.828728756 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.828748596 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.828766516 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
NvMMLiteOpen : Block : BlockType = 261 
NvMMLiteBlockCreate : Block : BlockType = 261 
0:00:03.932748320 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:4561:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:03.932807298 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.932841602 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.932861859 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
0:00:03.932879395 70491     0x43e98760 WARN                    v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xfffef40309e0 Failed to determine interlace mode
In cb_newpad

gstname= video/x-raw
features= <Gst.CapsFeatures object at 0xffff38a78340 (GstCapsFeatures at 0xfffef401cc40)>
0:00:03.941602459 70491     0x43e98760 WARN            v4l2videodec gstv4l2videodec.c:2305:gst_v4l2_video_dec_decide_allocation:<nvv4l2decoder0> Duration invalid, not setting latency
0:00:03.945504973 70491     0x43e98760 WARN          v4l2bufferpool gstv4l2bufferpool.c:1114:gst_v4l2_buffer_pool_start:<nvv4l2decoder0:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:03.955606433 70491 0xfffef4039460 WARN          v4l2bufferpool gstv4l2bufferpool.c:1565:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:src> Driver should never set v4l2_buffer.field to ANY
sys:1: Warning: g_object_get_is_valid_property: object class 'GstUDPSrc' has no property named 'pt'
0:00:18.588564755 70491 0xfffee4006ea0 WARN                  udpsrc gstudpsrc.c:1445:gst_udpsrc_open:<pay0> warning: Could not create a buffer of requested 524288 bytes (Operation not permitted). Need net.admin privilege?
0:00:18.588638132 70491 0xfffee4006ea0 WARN                  udpsrc gstudpsrc.c:1455:gst_udpsrc_open:<pay0> have udp buffer of 212992 bytes while 524288 were requested
0:00:18.589240993 70491 0xfffee4006ea0 WARN               rtspmedia rtsp-media.c:3014:default_handle_message: 0x55ba2920: got warning Could not get/set settings from/on resource. (gstudpsrc.c(1445): gst_udpsrc_open (): /GstPipeline:media-pipeline/GstBin:bin0/GstUDPSrc:pay0:
Could not create a buffer of requested 524288 bytes (Operation not permitted). Need net.admin privilege?)

---------------------------------------
My code print
detection : ID : 5, Time : 2023-11-10 18:13:07
detection : ID : 1, Time : 2023-11-10 18:13:11
---------------------------------------

0:00:38.587388001 70491 0xffff040de360 WARN               rtspmedia rtsp-media.c:3272:wait_preroll: failed to preroll pipeline
0:00:38.587442466 70491 0xffff040de360 WARN               rtspmedia rtsp-media.c:3652:gst_rtsp_media_prepare: failed to preroll pipeline
0:00:38.588560826 70491 0xffff040de360 ERROR             rtspclient rtsp-client.c:1077:find_media: client 0x34fd34d0: can't prepare media
0:00:38.588846144 70491 0xffff040de360 ERROR             rtspclient rtsp-client.c:2963:handle_describe_request: client 0x34fd34d0: no media
0:00:38.590313311 70491 0xfffee4006ea0 WARN                  udpsrc gstudpsrc.c:1445:gst_udpsrc_open:<pay0> warning: Could not create a buffer of requested 524288 bytes (Operation not permitted). Need net.admin privilege?
0:00:38.590364256 70491 0xfffee4006ea0 WARN                  udpsrc gstudpsrc.c:1455:gst_udpsrc_open:<pay0> have udp buffer of 212992 bytes while 524288 were requested
0:00:38.590749864 70491 0xfffee4006ea0 WARN               rtspmedia rtsp-media.c:3014:default_handle_message: 0x55ba2b00: got warning Could not get/set settings from/on resource. (gstudpsrc.c(1445): gst_udpsrc_open (): /GstPipeline:media-pipeline/GstBin:bin1/GstUDPSrc:pay0:
Could not create a buffer of requested 524288 bytes (Operation not permitted). Need net.admin privilege?)

---------------------------------------
My code print
detection : ID : 1, Time : 2023-11-10 18:13:21
---------------------------------------

0:00:58.589712101 70491 0xffff040de360 WARN               rtspmedia rtsp-media.c:3272:wait_preroll: failed to preroll pipeline
0:00:58.589792167 70491 0xffff040de360 WARN               rtspmedia rtsp-media.c:3652:gst_rtsp_media_prepare: failed to preroll pipeline
0:00:58.590746811 70491 0xffff040de360 ERROR             rtspclient rtsp-client.c:1077:find_media: client 0xfffef4006e20: can't prepare media
0:00:58.590972480 70491 0xffff040de360 ERROR             rtspclient rtsp-client.c:2692:handle_setup_request: client 0xfffef4006e20: media '/ds-test' not found

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

Let’s simplify the pipeline.

Since you are using orin nano, I guess it may be due to the small memory.

pgie.link(nvvidconv)
 #tracker.link(tiler)
 #pgie.link(tiler)
 #tiler.link(nvvidconv)
 nvvidconv.link(nvosd)

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