Low latency live video streaming via SRT
About SRT
Secure Reliable Transport (SRT) is an open-source video streaming protocol designed for low latency video transport over unreliable or congested networks. It was developed by Haivision, and has quickly gained popularity due to its ability to deliver high-quality, low-latency video streaming in even the most challenging network conditions.
How SRT makes low latency possible
SRT uses a combination of buffer management techniques and packet loss recovery mechanisms to ensure that video streams can be transmitted with minimal delay.
One of the ways that SRT achieves low latency is by minimizing the size of its buffers. This way video data can be transmitted more quickly, leading to a lower overall latency.
However, reducing buffer size can also increase the risk of packet loss, which can negatively impact video quality. To mitigate this, SRT uses a mechanism called the Maximum Packet Lifetime (MPL), which sets a maximum amount of time that a packet can be held in the buffer. Once this time limit is reached, the packet is discarded to reduce the risk of packet loss.
In addition, SRT employs various packet loss recovery mechanisms, such as the selective acknowledgment (ACK) mechanism and the retransmission mechanism. These mechanisms help to detect and recover lost packets, reducing the impact of packet loss on video quality.
Most popular user cases for low latency SRT streaming
SRT is an ideal protocol for a range of use cases, including live sports broadcasts, live news coverage, remote production, and corporate communications. It is also well-suited for video streaming in challenging network conditions, such as across the public internet or over satellite links.
SRT can also be used for real-time video streaming applications, such as live video conferencing or remote monitoring. Its low latency and ability to deliver high-quality video over long distances make it an excellent choice for applications that require high-quality video in real-time.
Low latency streaming example using OBS and VLC via Callaba
In this tutorial we are going to cover the basics of sending and receiving your SRT streams.
You can use Callaba to deliver your video worldwide - either using cloud providers our own Callaba CDN platform that covers more that 100+ countries.
We are going to be using OBS and VLC for illustrative purposes, but you can use any other software or even your encoder and decoder. The principle stays the same.
You will need the following components:
- OBS Studio. Download here.
- Callaba Streaming Server. Launch on AWS
- A camera or a video that you’d like to stream. 😊
- VLC Player. Download here.
Let’s go!
Creating SRT server in Callaba
1 . Open Callaba Dashboard. You can launch Callaba in the cloud or install on your own server. Contact us to purchase self-hosted license.
To launch Callaba in the cloud, you can follow our detailed guides :
Once you’ve launched Callaba, log into the dashboard.
2. Go to SRT Servers section
Click “Add New”
3. Create your SRT Server
To keep this tutorial short, we are not going to cover the settings of the SRT Server. You can find a very detailed description of the SRT Server settings HERE.
Make sure to setup the recommended Latency in Callaba.
Click “Check Latency” to get info icon in the listing of SRT servers. In this case, our latency 500ms.
4. Once you’re done, in the SRT Servers listing page, click “Info”(i) icon.
Now you can see your SRT Server’s Pubsliser URL address that we have to specify in OBS Studio.
Copy the Publisher URL, we’ll need it soon.
Setting up stream in OBS Studio
1 . Launch OBS Studio
In this tutorial we are not going to explain how to add your sources (a video file or a camera) in OBS, but you can read about it here.
Once you’ve added your sources, click “Settings”
Go to Stream tab
Service : select “Custom” from the drop-down list
Paste your Publisher URL into the Server field
Click “OK”
Click “Start Streaming”
2. You will see the bitrate of your stream going to Callaba.
Receiving the stream via VLC
1 . Go back to Callaba, SRT Servers section
Click “Info” (i) icon
Copy SRT Receiver URL
2. Launch VLC player
Click File > Open Network
3. Paste SRT Receiver URL into the URL field
Click “Open”
4. You’ll see your stream coming to VLC
This is the end of our tutorial.
If you have any questions, please contact us at: [email protected]
We will respond to you within 24 hours.
Happy streaming!