Background
Along with the standard parameters associated with any streaming output, there are other important values you must specify for an SRT stream. To introduce you to these parameters, let’s take a look at a hypothetical example of an SRT stream being sent to a destination device, and see what happens over time.
The diagram below depicts a stream being sent over a channel of some kind, such as a LAN or Internet connection, with a certain capacity. Packets being sent from a source are stored at the destination in a buffer. Let’s say at some point there is a total link failure, and then, shortly after, the connection is re-established. So, for a short period of time, the destination is receiving no data.
SRT deals with such situations in two ways. The first is that the destination relies on its buffer to maintain the stream output at its end. The size of this buffer is determined by the SRT Latency setting. Once the link is re-established, the source is able to resume sending packets, including re-sending the packets lost during the link failure.
To handle this extra “burst” of packets, an SRT stream allows for a certain amount of overhead. This Bandwidth Overhead is calculated such that, in a worst case scenario, the source can deliver the number of packets “lost” during the link failure (area A) over a “burst time” (area B), where area B must be equal to area A.
The maximum time period for which a burst of lost packets can be sustained without causing an artifact is:
SRT Latency (ms) * Bandwidth Overhead (%) ÷ 100
Example:
200 ms * 20% ÷ 100 = 40 ms