Srt: multiple client

Created on 15 Feb 2019  路  13Comments  路  Source: Haivision/srt

Hi,
i'm creating a srt stream in this way:
./srt-live-transmit "udp://0.0.0.0:5502?adapter=zz.zz.zz.zz" srt://:1234 -s:5000 -r:5000 -v

i can receive the stream from only one client.
How can i connect to the stream with more clients?

Thanks

Enhancement [apps]

Most helpful comment

@maxlovic, as told by @stoyanovgeorge my goal is just to transport a MPTS signal without touching it with ffmpeg or gstreamer.
I'm sure SRT supports multiple clients since it works on haivision HMG product. We just need to have this functionality in stransmit app.

All 13 comments

Hi, @Zulianino

SRT library itself supports multiple connections. But srt-live-transmit sample application supports only one client connection.

What kind of system are you trying to build? Do you want to deliver one stream to several client connections? Maybe we can suggest a proper solution for you.

This would be very helpful for me as well. I am missing point-to-multi-point functionality in srt-live-transmit. Is it possible to achieve something like this with the API?

Hi, @Zulianino

SRT library itself supports multiple connections. But srt-live-transmit sample application supports only one client connection.

What kind of system are you trying to build? Do you want to deliver one stream to several client connections? Maybe we can suggest a proper solution for you.

yes. one srt source multiple decoders

@Zulianino, @stoyanovgeorge
BTW check this guide on using SRT with GStreamer based on the description in #7. That set up might support several client connections (have not tested it myself).

i don't want to use Gstreamer

I also agree with @Zulianino that it would be better if the SRT sender server is decoupled from other third-party applications. And to be honest I am not interested in encoding the stream at this moment, I only want to transport the input TS to a couple of remote locations and then to recreate the original MPEG-2 TS. The proposed way of communication using gstreamer seems a bit like multicast transmission so I am not even sure if it will work if the connection is passing multiple routers. For me something like:
srt-live-transmit udp://225.0.0.0:1000 srt://77.66.55.44:8000 srt://77.66.55.45:8000?mode=rendezvous srt://77.66.55.46:8000
will work better where the three srt://uri are the IP addresses of the destinations. Or you can allow a couple of callers to connect to a single listener.

I'm sorry, but srt-live-transmit is a simple one-stream application that has grown up from a simple application done for testing and development purposes only. It has improved buffering and features automatic reconnection, but it supports only one stream and one output.

I had an idea to make a little bit more improved application that can support multiple outputs, including an SRT listener that can accept multiple connections. Unfortunately our team has lots of other work to do and can't spare any resources on that. If you want to try it yourself, you can use also sources from the srt-test-relay application. It's predicted for testing the bidirectional live streaming, but it's written with the use of blocking mode and multiple threads. It supports multiple outputs against one SRT connection.

Furthermore, stransmit has to be a general case solution.
Multiple clients connecting to a sender and those clients receiving streaming, is a relatevly simple case. Probably from the end user point of view some option is required to limit this possibility.

More complicated case is when a server is receiving data. SRT library already manages that. But stransmit on top of it has to provide some kind of data routing. Command line interface needs to provide a way to specify those routes.
These features go way beyond the tasks stransmit, being a sample application, is intended to solve at the moment.

@stoyanovgeorge
I suppose GStreamer can provide a pipeline to input UDP streaming and output SRT streaming. The question is only in whether SRT plugin for GStreamer supports multiple connections or not.

ffmpeg also supports SRT, providing another alternative solution for that task.

I am missing point-to-multi-point functionality in srt-live-transmit. Is it possible to achieve something like this with the API?

The SRT library API provides this possibility.

thanks for your answers @ethouris @maxlovic I will try to achieve this behavior with the API.

@maxlovic, as told by @stoyanovgeorge my goal is just to transport a MPTS signal without touching it with ffmpeg or gstreamer.
I'm sure SRT supports multiple clients since it works on haivision HMG product. We just need to have this functionality in stransmit app.

thanks for your answers @ethouris @maxlovic I will try to achieve this behavior with the API.

Did you succeed to achieve this behavior ? I would also be interested by this feature.

Closing this request.
srt-live-transmit is meant to be a simple application, a quick start for people to get themselves familiar with the protocol and workflows. The main development effort is focused on the SRT library itself.

Having multiple clients sounds like a solution (e.g. SRT Gateway) that depends on the target appliance. Definitely not something for a sample application.

Was this page helpful?
0 / 5 - 0 ratings