RTMP was originally developed by Macromedia as method of streaming video, audio and data between their Flash player and a server. Macromedia was acquired by Adobe and though the original Flash product has very much waned in popularity, the RTMP protocol for live streaming is still very popular.
But relatively speaking it is now an old technology and there are newer and more innovative ways of streaming video, one of which is SRT (Secure Reliable Transmission). This is an open source protocol that was originally developed by Haivision and Wowza which now consists of an alliance of over 150 companies, including NGCodec, that are committed to utilising and integrating the SRT protocol. One of the most recent newest members being Microsoft.
The main aim of SRT is to stream with very low latency even over fluctuating networks and protect against packet loss. With an additional benefit of security in terms AES encryption. This is especially important for live streaming over a public network.
But to understand the benefits of SRT and compare it against other emerging video streaming technologies, it is necessary to go back to the underlying IP network protocols underpinning the internet, particularly of TCP/IP versus UDP.
TCP and UDP are protocols used for sending bits of data — known as packets — over the Internet, but they work in different ways.
TCP (Transmission Control Protocol) is most used by everyday internet applications to guarantee delivery of packets through a handshaking mechanism between the sender and the receiver. If packets are not received, then they are resent. Though guaranteeing an authentic delivery of packets, it is very slow and does not optimise on fluctuating networks. RTMP and other HTTP streaming-based protocols, which includes MPEG-DASH and HLS, rely on TCP/IP for handshaking and replacing packets that are lost in transmission. This means there is a potential issue of latency which is not efficient for high performing video streams.
UDP on the other hand does not have a handshaking mechanism. It basically sends the packets and hopes for the best. But in terms of latency it is much reduced and actually becomes a more ideal solution for video streaming. It is possible to use other error correction mechanism with UDP and so this is where SRT starts to look attractive compared to other streaming mechanisms.
SRT uses the UDP protocol and is designed to be utilised over lossy networks to ensure reliability. It does this with the use of a “high-performance” sender and receiver module – one that does not choke the network with handshaking acknowledgements. This allows it to scale and maximize the available bandwidth. SRT guarantees that the packet cadence (compressed video signal) that is sent is identical to the one that is received at the decoder.
SRT adds in other features specifically designed for efficient and secure video streaming: -
· 128/256 AES encryption providing security on a link level over public networks
· Is content agnostic and brings together multiple video, audio, and data (metadata) streams within a single SRT stream, allowing it to easily support highly complex workflows
· Supports both sender and receive modes (in contrast to both RTMP and HTTP that only support a single mode) that is useful for passing firewalls
· Within the sender / receiver module, it is possible to detect network performance and use a form of adaptive bitrate and correction with regards to latency, packet loss and jitter
· Can support current and next generation compression techniques ie H264 (AVC), H265 (HEVC), AV1, VP9
· SRT is open source and royalty free and available on the Github platform
RTMP is not dead by any stretch of the imagination and is well adopted by many CDN and other video management streaming services and will be utilized for many years to come. But given its restrictions in terms of latency and encryption, it is clear with the quality of the alliance it has behind it, SRT will emerge as the next generation video streaming protocol. It is already being deployed to replace RTSP, especially in those high-end next generation live video contribution workflows.
NGCodec is dedicated to providing low latency FPGA video encoding solutions for live encoding and is a member of the SRT alliance. Our new EvalKit will naively support SRT.