Missing media attributes in SDP for RTSP-Out Example

• Hardware Platform (Jetson / GPU): Jetson Xavier NX (Devboard)
• DeepStream Version 6.0
• JetPack Version (valid for Jetson only) 4.6
• TensorRT Version 8.0.1
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs) question, possible bug
**• How to reproduce the issue ? start dstest_test1_rtsp_out.py
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

I have a problem with the example deepstream_test1_rtsp_out.py (with sample_720.h264 as input). I can start the RTSP server successfully and receive the stream with e.g. VLC without any problems. But the stream cannot received by a streaming platform which needs the media attribute fmtp of the SDP session which is not set on the stream. Here is a copy from the output of wireshark for the SDP:

Real Time Streaming Protocol
    Response: RTSP/1.0 200 OK\r\n
    CSeq: 3\r\n
    Content-type: application/sdp
    Content-Base: rtsp://localhost:8554/ds-test/\r\n
    Server: GStreamer RTSP server\r\n
    Date: Thu, 24 Feb 2022 11:05:42 GMT\r\n
    Content-length: 296
    Session Description Protocol
        Session Description Protocol Version (v): 0
        Owner/Creator, Session Id (o): - 3499268379920706973 1 IN IP4
        Session Name (s): Session streamed with GStreamer
        Session Information (i): rtsp-server
        Time Description, active time (t): 0 0
        Session Attribute (a): tool:GStreamer
        Session Attribute (a): type:broadcast
        Session Attribute (a): control:*
        Session Attribute (a): range:npt=now-
        Media Description, name and address (m): video 0 RTP/AVP 96
        Connection Information (c): IN IP4
        Media Attribute (a): rtpmap:96 H264/90000
        Media Attribute (a): control:stream=0
        Media Attribute (a): ts-refclk:local
        Media Attribute (a): mediaclk:sender

It seems that the media information for the media attribute fmtp is not forwarded downstream. I tried to set config-interval of the encoder (insert-sps-pps is already on True in the given example) but the attribute is still missing.

I already tried to set the profile-level-id and packetization-mode directly in the launch string of the RTSPMediaFactory and then the fmtp attribute with these two values appears but this is not a satisfying solution (also sprop-parameter-sets is not set in this way)

Thank you in advance!

fmtp in SDP is to transfer the extra parameters which is customized information. Please see the page 30 in
RFC 4566 - SDP: Session Description Protocol (ietf.org)
We don’t know what kind of customized info you want to be put into SDP message. You need to add the extra you want by yourself.

According to gstreamer RTSP/SDP implementation, the gst-plugins-base/gstsdpmessage.c at master · GStreamer/gst-plugins-base (github.com) and gst-rtsp-server/rtsp-sdp.c at master · GStreamer/gst-rtsp-server (github.com), the SDP message is generated from caps, so you can add your own info in the caps by yourself. deepstream_python_apps/deepstream_test1_rtsp_out.py at master · NVIDIA-AI-IOT/deepstream_python_apps (github.com)

Please make sure you are familiar with gstreamer and protocol before you start with deepstream.

Your problem has nothing to do with deepstream.

1 Like

Thank you!

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