Originally Posted by: nicademus 
APOLOGIES - this will be a long one - but hopefully make sense.
Predominately the below refers to OB's where we are videoing Sports (Australian Rules) - and doing live scores, Graphics, etc.
We have a situation where we built our own RTMP Relay server - similar to Restream, etc. which works fine most of the time...However we find more and more recently - when the internet for our Outside Broadcast location is questionable (Thanks Telstra 5G,) the Ingress RTMP to the server from our OB VMIX - can cut out, and sometimes fail to come back.
Our Main stream each weekend has a FULL VMIX PC doing all the graphics, replays, etc. then Pushing to the RTMP Server, and that server then relaying to YT, FB, etc. So it is Vmix-RTMP > RTMP-Server > YT,YT,FB
For some of our other Live Stream games - to date with those devices - we stream in via RTMP to the RTMP Server, Vmix on a "control PC" picks up the RTMP Source as an input, and we also then control APIs and a JSON datasource to overlay Score graphics automatically from an App the camera operator uses on-site. This means it can be a 1 Person job on-site, and all happens automatically.
RTMP has worked ok there - but last night it failed dramatically. EVEN though RTMP from the device was hitting the RTMP Server with ZERO dropped frames, VMIX was struggling to pull the RTMP Feed.
THEN I discovered SRT, and did some tests, it is Definitely a Winner...and looks like we can easily use it. Instead of the intermediary RTMP Server - we have added a NAT rule for SRT Direct to the Control PC - added an SRT Listener, and as soon as we press GO on the Atomos Connect, etc. it shows up instantly in VMIX. GREAT - that will work perfect for the lower level OB.
With the MAIN OB though - I want to still use VMIX on-site, as we often Mix different inputs, and also do replays, etc. The Issue is - the Custom Stream Options do NOT include SRT.
I found somewhere to do it - and it seems to work...but...it seems like it is designed for something else.
Namely - if I go to Outputs, I can see SRT as an Output for each of the Outputs, 1, 2, 3, 4 and so on and Can individually set an IP, Port, Bitrate, all that...
and then just tick the tick box to change the Output to go live...But it certainly doesn't have the same Feel as having the Stream button RED in your face, or Yellow and blinking when it starts to fail.
It seems the SRT Output function is nominally designed for feeding Local/Closed-loop or Permanently UP systems.
For our situation I may setup an OB at say 10 in the morning, do a Stream test with RMTP - make sure it works, then shut it down. Whereas if SRT Enable is more of an Always On feature - that could result in an excess of Data
Is anyone else using SRT communication VMIX to VMIX, and more specifically Across a WAN link?
More-over - is there any chance of there being a Custom SRT Stream Option ?!
(or am I just missing seeing an option...apparently the other Shall-not-be-named product has had SRT streaming since v27, and been considered "1st class option since 30+)
Hi Nic,
good you discovered SRT. To put it short; RTMP is TCP and works
only safe for video if there is no or very little network loss. If there is, things go wrong, especially if your delay time on the link is high and the bandwidth is high (more than 4 Mbit/s roughly). RTMP and mobile networks - dont. RTMP and WiFi - dont. Cross a continent with RTMP - dont.
SRT uses UDP, has built in packet time stamping for exact sender/receiver timing and can in live mode drop packets in a controlled manner to keep video flowing even with some frame drops.
We did 2-way SRT remote production between 2 vMix systems - works well and you can also use multichannel audio for intercom if necessary.
Set the latency to 2-4x Round Trip Time, 4x is safer for packet error spikes. Use only 75% of the bandwidth link for your signal, leaving 25% for extra error recovery data, if necessary.
If we need to go to YT etc. we use SRT to the data center, and use
Datarhei Restreamer as relay from SRT to RTMP. Its sad the YT offers SRT ingest only for certain customers, AFAIK Vimeo has it now for everybody.
SRT is a first class citizen in the pro broadcast world, the acronym sometimes spoken as "Satellite Replacement Technology". The broadcasters around the world use it massively every day. However, there might be an issue if you go from vMix to pro SRT decoders (IRDs) - some of them are very strict with their signal timing, which vMix sometimes cannot deliver. Test before you go live with such a contribution.
I agree with you the UI controls of SRT outgoing streams are a pity. If you have SRT active, you get a red SRT label on the upper window edge of vMix. If you click on it, you will get the SRT stats dialog.
As you said, I would love to have SRT being a first class citizen in the streaming dialog box or even in a separate SRT dialog with these features:
- Big On/Off Buttons
- SRT Telemetry info (RTT, retransmissions, frames lost, bandwidth)
- SRT connection parameters to save for quick access
Also currently you can not set SRT connection parameters through scripting or shortcuts. If you enter passphrases or stream IDs, every typo will kill you, be careful and use a text editor to clean up things copypasted from somewhere.
Incoming SRT is ok to set up, just like any other input. Beware of the H.265 issue in Windows:
Windows has no H.265 decoder installed by default, you need to buy it in the Microsoft store (0,99 Euro). If it is not installed, an incoming H.265 stream on SRT will silently go black with audio ok. No error message, nothing. Outgoing SRT streams do not use this codec, but rely on the built in FFMPEG encoder. That is strange, but you have to live with it.
To put ist short: SRT is the way to go and it would be great if Studiocoast would make it more accessible for us operators.
Best,
Chris