Skip to main content

Choosing an Error Correction Method for SRT Streams

Haivision Media Gateway and Haivision SRT Gateway offer various error correction options for SRT streams. See the following table and sections for a high-level comparison of the available options:


ARQFECFEC+ARQPath Redundancy using ARQ
Active-ActiveActive-Backup
OverheadLowHighHigherHighestLowest
RecoveryGreatLowGreaterGreatestGreat
LatencyLowVery lowLowLowLow
Link Break ResultLossesLossesLossesStableMostly Stable
Target UsecaseLow RTTHigh RTT/few losses

Higher RTT/more losses

Link redundancyLink redundancy

Automatic Repeat Request (ARQ)

By default, SRT uses an automatic repeat request for lost packets. When a receiver determines that a packet is lost, it requests the transmitter to resend the packet. The buffering of data packets on the receiver makes it possible to recover from packet losses (and to deal with varying RTT times (network jitter) in the network) providing a near constant end-to-end latency of the transmission.

Forward Error Correction (FEC)

FEC allows the receiver to recover a lost packet without retransmission. Applications that can benefit from using SRT FEC include:

  • Networks with very high RTT, in which retransmission would bear latency penalty higher than for FEC (e.g. satellite).
  • In the networks with really high BDP, the end-to-end latency of the FEC without ARQ might be superior to ARQ-only.

FEC Matrix Size and Layout Considerations

When FEC is enabled for SRT streams, you may choose your desired matrix size and layout.

Increasing the size of the FEC matrix improves error correction while increasing the overhead and processing needed. You will need to fine tune the matrix size to determine the best compromise for your network and hardware.

Two FEC matrix layouts are available:

  • Even (block-aligned): The packet sequence numbers at the start of each column increment by 1. The FEC column control packets are only transmitted with the last row, resulting in twice the normal bandwidth for that row.
  • Staircase (non-block aligned): The packet sequence numbers at the start of each column increment by R+1, where R is the row size. The transmission of the FEC control packets is well spaced, thus avoiding spikes in the use of available bandwidth. Also, staircase arrangement increases the probability of recovering a long sequence of lost packets when consecutive lost packets in a row belong to different column groups. The disadvantage is slightly more memory and CPU usage for assembling/disassembling the staircase layout.

For more details about the FEC layout options, see https://github.com/Haivision/srt/blob/944287050f58a7901d485c21f75bf636742f3fdd/docs/features/packet-filtering-and-fec.md.

Path Redundancy

If you have multiple network links, SRT Path Redundancy provides a failover mechanism for your video stream. Two modes are available: active-active and active-backup. See Using Path Redundancy with SRT Streaming for more details.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.