I am trying to develop an application. The goal is to have to different RTSP paths, one will serve only unicast and the other will serve only multicast.
gst-rtsp-server works fine for just unicast, or just multicast applications but I haven't had success with mine.
I tried the following:
- Create 2 media factories, attach 2 different pipelines with same launch strings to them. Attach two different paths to them like "/unicast" and "/multicast". Capture first media-constructed signal from either of the factories and save the pipeline and RTSPMedia from the signal. When second one is called, try to force the first pipeline into the second one. This approach failed miserably as the framework doesn't allow you to change the pipeline after it is constructed and there is no way to get the RTSPMedia from the RTSPMediaFactory before media is constructed (like somebody would except ).
- I changed my way of forcing the pipeline into the second one by using an element by element basis, but it doesn't work either. The second server doesn't respond to RTSP queries, probably because I didn't properly link or add required elements.
- I tried to build my RTSPMedia from scratch but there are no guides around. Reference manual tells about the usage of the functions but doesn't actually tell you which ones are required to get a clean run.
BONUS Question: I also want to record video on the same pipeline. Is it possible? Is there an element that can be switched on/off on the run. That will block/allow dataflow to a filesink maybe?