In case you missed it, SRT 1.4 was released at IBC2019! Before we dive into an explanation of what’s new, let’s not forget that the Secure Reliable Transport protocol has come a long way since its public debut at IBC in 2013. Haivision took the decision to open source it in 2017 and since then, the protocol has attracted widespread support from the industry, becoming the de facto low latency video streaming standard and gaining a whole host of new features along the way. We asked Marc Cymontkowski, Haivision’s Vice President of Engineering, to share a little more about what SRT 1.4 has to offer.
Packet Filter API
SRT 1.4 sees the introduction of a plugin API – a packet filter API. What this means is that on the sender side, before the network packet is sent, it’s run through a packet filter so it can be processed. Similarly, on the receiver side, once a packet is received from the network, it runs through a filter and is processed on the other side. This plugin API allows users to write their own plugin for the SRT protocol, thereby extending its capabilities even further, offering all kinds of different packet filtering. When using the new filter, users can now manipulate the resulting data any way they want for custom encryption, packet inspection, or accessing data before it’s sent for example.
FEC Plugin
The first plugin created as an example of what can be achieved with the packet filter API is for Forward Error Correction (FEC) which, in certain use cases, albeit very rarely, where there are very long-distance links and an excellent quality connection, can offer slightly lower latency than Automatic Repeat Request (ARQ). This new plugin allows users to compare ARQ and FEC and will allow three different modes to be run:
- ARQ only – retransmit of lost packets
- FEC only – provides the overhead in the bandwidth needed for recovery on the receiver side
- FEC and ARQ – if FEC doesn’t manage to recover a packet, you can still retransmit
Looking Ahead
Thanks to a rapidly expanding community of enthusiasts now contributing to the protocol, Marc is especially excited about the future of SRT, notably SRT 1.5, which is currently an experimental branch on GitHub. This release will include an amazing feature which has been talked about for a long time and is finally coming to fruition: socket groups. Socket groups offer many benefits, including:
- SMPTE-2022-7 seamless protection switching – allowing redundancy over multiple links
- Main/backup redundancy – allowing significant bandwidth savings with no interruptions
- Link bonding – allowing data to be sent over multiple connections
The general concept of socket groups means having a group that contains multiple sockets and that one operation for sending one data signal is applied to the group, compared to single sockets inside the group which will take over this operation and do what is necessary to deliver the signal to the receiver. The redundancy and backup socket group types are predicted to solve the problem of unexpected network problems – both breaking and the “spike” problems resulting in short-lived network congestion.
Want to Learn More?
Join the SRT Alliance on Slack – it’s free and you don’t have to be a member to sign up.
Watch Marc, along with SRT enthusiasts from Bridge Technologies, Globo and Red Bee Media as they discuss the latest technical developments of SRT in detail during the SRT Open Source Technical Panel at IBC2019.