ADDED: Add SRT (Secure Reliable Transport) to Video Stream In/Out to Enable Streaming over Internet

Hi friends,

Recently stumbled across SRT (Secure Reliable Transport) in our research to find solutions for point to point video streaming over the web. We’ve done some tests using other utilities and it works really really well. It’s open source, so I’m wondering how challenging it would be to add native support in TD.

More here: GitHub - Haivision/srt: Secure, Reliable, Transport

Other interesting bonus is that SRT is not just limited to video. Would be great to also stream CHOP or DAT data over the internet over SRT.

Cheers,
Evan

1 Like

I’ve added support for the 2020.40000 series of builds for SRT input. I wasn’t happy with the stability of FFmpegs SRT output though. Even in the standalone ffmpeg.exe I found it failed very often. So currently output isn’t yet supported.

1 Like

Oh interesting! Glad to hear it’s already on your radar even if not fully implemented yet.

Looking forward to the output side getting worked out.

Cheers,
Evan

Hi Malcolm, any plans to try this again? From my research SRT seems to be the replacement for RTMP/

Thanks!

Yep we definitely plan to take another look at it at some point.

1 Like

FYI Larix Broadcaster is a great mobile app for sending SRT. I was easily sending 4k 60fps over wifi from my phone to my desktop.

If this is the best way to create low-latency ptp AV connections over the web, then I’d encourage it. Is it the best option currently?

Hi @malcolm

I’m looking at setting up the SRT receiver in the new experimental build. Could you possibly confirm what mode it works in? Is it in Rendevous mode and we just put a port on the end of the URL?

I’m sending from VMIX and following these guides:

https://www.vmix.com/help23/index.htm?SRT.html

Thanks,
Scott

Just to reply here that I got it working with ports forwarded and the sender (VMIX) set as a listener.

Scott

1 Like

@flytrap can you maybe share what settings you used for receiving a SRT stream in TD from Larix Broadcaster on mobile? I can’t get it to work.
What I tried in TD build 40290:

  1. Android phone is connected via adhoc wifi network directly to TD machine

  2. TD machine has its Windows firewall disabled

  3. In TD, I set the Video Stream In TOP to srt://<my-TD-machine-ip>:11000
    This TD laptop has a Geforce 970M with recent driver

  4. In Larix Broadcaster (Android) I set the connection to srt://<my-TD-machine-ip>:11000
    Tried both HEVC and H.264

Result: Larix Broadcasting app gives a message it can’t connect to server

Any ideas appreciated!

@nettoyeur at the time I was using vMix but since I need to use this for a gig next week anyway I’ll try to get it working today and let you know.

Ok on the Video Stream In TOP, I used the following URL (be sure to disable firewall for the app and that port): srt://0.0.0.0:9494?mode=listener&latency=1000

In the Larix Broadcaster app I used the following settings:

Note, you should be able to incorporate the rest of the settings by adding them to the srt:// url in the TOP, such as I did with Latency. There is a list available in the FFMPEG wiki but I’m not sure if TD is integrated through FFMPEG or natively.

Hope this helps!
Nick

1 Like

Sweet! That’s brilliant Nick, I had no idea I could control settings via the URL in TD. Thanks so much!

cheers Idzard

1 Like

We are using ffmpeg internally so I just pass that URL straight to them.

1 Like

The next release of the 2020.40000 series will have SRT output supported in the Video Stream Out TOP.
We’ve also added per-frame metadata support, so you can package channel data up with your video. DAT support should be coming soon (or will be in already by the time it’s released)

3 Likes

per-frame metadata via DATs, as well as H265 support, is coming in SRT output in the next 2020.40000 as well.

2 Likes

This has been available since build 2020.42700, would love to hear feedback from those who can use it.

I haven’t tested it exhaustively so can only say that it worked as I would expect.

@ben the current SRT implementation is missing a few key setup variables like setting the SRT as a listener, caller, rendezvous etc and also defining the latency which is essential for SRT to work across the internet.

If you’re using FFMpeg can we add these to the URL like in OBS? Wiki - Error - 404 | OBS (see Option 1: Stream SRT using the Streaming output)

@tallscott7: yes see messages &examples above in this thread, the url is passed directly to ffmpeg internally, so you can add all ffmpeg settings such as latency and mode=caller|listener|rendezvous to your urls in the Video Stream In/Out TOPs.

see the full list of options here: FFmpeg Protocols Documentation