Gstreamer RTSP Server on Apalis TK1

Here’s an odd one:

I’ve constructed a gstreamer pipeline in C++ represented by this image:

To the udpsink at the end of the pipeline, I attach an instance of gst-rtsp-server (of type RTSPServer) that launches the following “pipeline” to actually serve the stream to incoming requests. The stream URL is rtsp://192.168.20.5:8554/rtsp:

mRtspServer.Pipeline("( udpsrc port=5005 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! rtph264pay name=pay0 pt=96 ) ");

Occasionally, this works to stream live video over RTSP using VLC. However, a lot of the time, it fails and I get the following interesting line in the gst debug log:

client 0xeff940: received a request PLAY rtsp://192.168.20.5:8554/stream=0 1.0

When this happens, of course it doesn’t find any media at that erroneous URL, and thus fails the pipeline. When it does work, I get this equivalent line in the log:

client 0xeff940: received a request PLAY rtsp://192.168.20.5:8554/rtsp 1.0

It looks like somehow the URL is getting corrupted in the process of negotiating the connection? I will say that when I manually recreate the pipeline via string encoding it works every time. I will also say that before I inserted the queue into the attached image, it never worked, so the queue “helped” some, but obviously there are still issues.

?

grh

Oh, one more interesting thing, every single time, whether it works or not, the first RTSP request handled by the RTSP server comes in as a request that looks like this:

client 0xeb48a0: received a request OPTIONS rtsp://192.168.20.5:8554/rtsp 1.0

?

Hi @grh,

Could you please create and share minimal reproducible example? So we can run and debug it locally? Could you also provide an exact BSP version you are using?