Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) jetson • DeepStream Version 7.0 • JetPack Version (valid for Jetson only) 6.0 • TensorRT Version 8.6.2.3 • Issue Type( questions, new requirements, bugs) questions
While running a GStreamer pipeline to process an H265 stream, I am receiving an error related to the GstRtpH265Depay element. The specific error message is as follows:
GstRtpH265Depay:depay: NAL unit type 50 not supported yet
DeepStream uses some opensource Gstreamer plugin. this error is from Gstreamer code, which means rtph265depay can’t support the stream. please refer to this topic.
he discussion topic indicates that resolving the error is not achieved by simply changing the decoder. Are there any solutions at the code level, apart from adjusting the camera’s settings? For instance, is it possible to employ an alternative decoder, or to insert a probe within the rtph265depay element to bypass certain NAL unit types? I am uncertain about the feasibility of such an approach. Currently, I am not aware of the instance when the rtph265depay is instantiated, nor do I know exactly where the probe should be inserted.
Could such a method be viable? I am not sure if this is a practical solution, as I do not have information on when the rtph265depay element is created during the pipeline, and I am uncertain about the precise location where the probe should be added.
Thank you very much. This issue only arises when handling multiple camera RTSP streams simultaneously, and it occurs after the system has been running for a while. The error message states “NAL unit type 50 not supported yet.” Currently, I am considering a method that involves adding a probe to the rtph265depay element to capture the buffer and skip the unit type 50. However, I am unsure about where in the Python code to access the rtph265depay element. Can you advise if this approach is feasible?
if testing each RTSP source, will this “NAL unit type 50 not supported yet” error persist?
2. nvurisrcbin is a gtreamer bin, rtph265depay is a sub-element of nvurisrcbin. please refer to this code for how to find sub-element.
If the resolution of the stream input is reduced, this issue does not occur. However, during the operation, the following error occurs: Failed to connect. (Timeout while waiting for server response) at …/gst/rtsp/gstrtspsrc.c(8130): gst_rtspsrc_retrieve_sdp() in the pipeline /GstPipeline:vehicle-congestion-pipeline/GstBin:source-bin-04/GstDsNvUriSrcBin:uri-decode-bin/GstRTSPSrc:src.
rtspsrc plugin s Gstreamer opensource plugin. the error “Failed to connect.” is from this code, which means the client did not get any response from the server.
But I have set the nvurisrcbin element with uri_decode_bin.set_property("rtsp-reconnect-interval", 60). Doesn’t this automatically reconnect every 60 seconds? Previously, for the same error, the program would automatically reconnect until the resource was successfully acquired.
I am unable to obtain the creation of the rtph265depay element in the decodebin_child_added function. By using GST_DEBUG=*FACTORY*:7 gst-launch-1.0 nvurisrcbin uri=rtsp://admin:123456@192.168.11.98:554/h265/ch1/main/av_stream ! nvv4l2h264enc ! h264parse ! flvmux ! rtmpsink location=rtmp://192.168.40.11:1935/live/1v999, I observed that the creation of rtph265depay occurs after the pipeline is set to PLAYING. Is this due to an error in my code or some other reason that I am unable to capture the pad creation of the rtph265depay element?
Here is the code:
def decodebin_child_added(child_proxy, Object, name, user_data):
log.info("Decodebin child added:{}", name)
if name.find("decodebin") != -1:
Object.connect("child-added", decodebin_child_added, user_data)
if "rtph265depay" in name:
log.info("rtph265depay")
rtph265depay = child_proxy.get_by_name("rtph265depay")
rtph265depay_pad = rtph265depay.get_static_pad("src")
if rtph265depay_pad:
rtph265depay_pad.add_probe(Gst.PadProbeType.BUFFER, nal_filter_probe, 0)
Here is the log using GST_DEBUG=*FACTORY*:7:
GST_DEBUG=*FACTORY*:7 gst-launch-1.0 nvurisrcbin uri=rtsp://admin:123456@192.168.11.98:554/h265/ch1/main/av_stream ! nvv4l2h264enc ! h264parse ! flvmux ! rtmpsink location=rtmp://192.168.40.11:1935/live/1v999
0:00:00.001272013 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<bin> Created new elementfactory for type GstBin
0:00:00.001361045 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<pipeline> Created new elementfactory for type GstPipeline
0:00:00.001021527 158182 0xaaab0e7518d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<bin> Created new elementfactory for type GstBin
0:00:00.001104158 158182 0xaaab0e7518d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:240:gst_element_register:<pipeline> Created new elementfactory for type GstPipeline
0:00:00.070962244 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "nvurisrcbin"
0:00:00.310040485 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "nvv4l2h264enc"
0:00:00.330306204 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "h264parse"
0:00:00.331613579 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "flvmux"
0:00:00.332988544 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtmpsink"
0:00:00.334076156 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "pipeline"
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
0:00:00.401905877 158181 0xaaaaffe800d0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "rtspsrc"
0:00:00.405065729 158181 0xaaaaffe800d0 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "rtspwms"
0:00:00.405871717 158181 0xaaaaffe800d0 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "rtspreal"
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Pipeline is PREROLLED ...
Prerolled, waiting for progress to finish...
Progress: (connect) Connecting to rtsp://admin:yw123456@192.168.11.98:554/h265/ch1/main/av_stream
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
0:00:00.431144869 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsrc"
Progress: (request) SETUP stream 0
0:00:00.438378858 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "rtpbin"
0:00:00.440108893 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpsession"
0:00:00.440378420 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpssrcdemux"
0:00:00.440488925 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpstorage"
0:00:00.443588068 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsink"
0:00:00.443890654 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "fakesrc"
0:00:00.445091683 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsink"
0:00:00.445447042 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsrc"
Progress: (request) SETUP stream 1
0:00:00.456048229 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpsession"
0:00:00.456175247 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpssrcdemux"
0:00:00.456239573 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpstorage"
0:00:00.456978324 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsink"
0:00:00.457145026 158181 0xaaab0087ac00 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "fakesrc"
0:00:00.457513665 158181 0xaaab0087ac00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "udpsink"
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Progress: (request) Sending PLAY request
Redistribute latency...
Redistribute latency...
Progress: (request) Sending PLAY request
Redistribute latency...
Redistribute latency...
Progress: (request) Sent PLAY request
0:00:00.572301225 158181 0xffff2c006ea0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpjitterbuffer"
0:00:00.573535761 158181 0xffff2c006ea0 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpptdemux"
Redistribute latency...
0:00:00.574694259 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "rtph265depay"
0:00:00.574880195 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "h265parse"
0:00:00.575498808 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "tee"
0:00:00.575660069 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "tee"
0:00:00.575709546 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "queue"
0:00:00.575906842 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "decodebin"
0:00:00.577349109 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "typefind"
0:00:00.577547813 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "queue"
0:00:00.577610315 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "nvvideoconvert"
0:00:00.578294981 158181 0xffff0401b000 LOG GST_ELEMENT_FACTORY gstelementfactory.c:736:gst_element_factory_make_valist: gstelementfactory: make "capsfilter"
0:00:00.581613534 158181 0xffff0401bb60 DEBUG GST_ELEMENT_FACTORY gstelementfactory.c:1192:gst_element_factory_list_filter: finding factories
0:00:00.590805994 158181 0xffff2c06a400 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpjitterbuffer"
0:00:00.591673748 158181 0xffff2c06a400 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "rtpptdemux"
Redistribute latency...
0:00:00.593361923 158181 0xffff0401bb60 LOG GST_ELEMENT_FACTORY gstelementfactory.c:682:gst_element_factory_make_with_properties: gstelementfactory: make "capsfilter"
0:00:00.600318641 158181 0xffff0401bb60 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "nvv4l2decoder"
Redistribute latency...
Notcing you added " log.info(“Decodebin child added:{}”, name)", did the app print “Decodebin child added: rtph265depay”? is the video format of source H264? you can use ffprobe or gst-discoverer-1.0 -v rtsp://xx to check.