SRT Protocol Support

Srt main

Overview

StanagProcessor is a versatile tool for processing and transmitting video streams with support for various network protocols, including the SRT (Secure Reliable Transport) protocol. The SRT protocol is ideal for low-latency streaming over unreliable networks and provides features such as encryption, packet loss recovery, and jitter correction.

StanagProcessor offers SRT input and SRT output capabilities, allowing it to both receive and contribute video streams securely and reliably.

SRT Input (Server Mode)

In SRT input mode, StanagProcessor acts as an SRT server, waiting for clients to connect and send data. This mode is useful when you want to receive streams from a remote SRT client and process them within the application.

Features:

  • Server Mode: StanagProcessor waits for incoming connections from SRT clients.
  • Low-Latency Streaming: It can receive real-time streams with a predefined latency over unreliable networks.
  • Error Handling: SRT's built-in mechanisms, such as packet recovery and jitter buffering, ensure smooth transmission even in poor network conditions.
  • Encryption Support: StanagProcessor supports encryption for secure transmission. You can enable AES encryption to protect the incoming stream from unauthorized access.

Configuration:

Srt main

To configure StanagProcessor for SRT input, you will need to:

  • Select srt protocol
  • Scecify IP address and Port number

You can also set optional configuration parameters (in SRT Settings):

  • Set required latency (in SRT Settings)
  • Set optional Stream Id (sender only)
  • Specify the encryption key and AES type (128-bit, 192-bit, or 256-bit) for secure communication

SRT Settings

Srt settings

SRT metrics

SRT provides a set of statistical data on a socket. This data can be used to keep an eye on a socket's health and track faulty behavior. Statistics are calculated independently on each side (receiver and sender) and are not exchanged between peers unless explicitly stated.

To ensure efficient and stable data transmission, it is crucial to monitor various metrics that provide insight into the connection’s health and performance. These metrics help identify potential issues such as packet loss, retransmissions, and bandwidth fluctuations, allowing for timely adjustments to optimize the streaming experience.

StanagProcessor allows monitoring of key parameters related to SRT connections, including packet-level statistics, bandwidth usage, loss rates, and delay measurements. By understanding and tracking these metrics, users can effectively diagnose network issues, fine-tune performance, and maintain a high-quality media streaming workflow over unreliable networks.

Name Description
MsTimeStamp time since the UDT entity is started, in milliseconds
PktSentTotal total number of sent data packets, including retransmissions
PktRecvTotal total number of received packets
PktSndLossTotal total number of lost packets (sender side)
PktRcvLossTotal total number of lost packets (receiver side)
PktRetransTotal total number of retransmitted packets
PktSentACKTotal total number of sent ACK packets
PktRecvACKTotal total number of received ACK packets
PktSentNAKTotal total number of sent NAK packets
PktRecvNAKTotal total number of received NAK packets
UsSndDurationTotal total time duration when UDT is sending data (idle time exclusive)
PktSndDropTotal number of too-late-to-send dropped packets
PktRcvDropTotal number of too-late-to play missing packets
PktRcvUndecryptTotal number of undecrypted packets
ByteSentTotal total number of sent data bytes, including retransmissions
ByteRecvTotal total number of received bytes
ByteRcvLossTotal total number of lost bytes
ByteRetransTotal total number of retransmitted bytes
ByteSndDropTotal number of too-late-to-send dropped bytes
ByteRcvDropTotal number of too-late-to play missing bytes (estimate based on average packet size)
ByteRcvUndecryptTotal number of undecrypted bytes
PktSent number of sent data packets, including retransmissions
PktRecv number of received packets
PktSndLoss number of lost packets (sender side)
PktRcvLoss number of lost packets (receiver side)
PktRetrans number of retransmitted packets
PktRcvRetrans number of retransmitted packets received
PktSentACK number of sent ACK packets
PktRecvACK number of received ACK packets
PktSentNAK number of sent NAK packets
PktRecvNAK number of received NAK packets
MbpsSendRate sending rate in Mb/s
MbpsRecvRate receiving rate in Mb/s
UsSndDuration busy sending time (i.e., idle time exclusive)
PktReorderDistance size of order discrepancy in received sequences
PktRcvAvgBelatedTime average time of packet delay for belated packets (packets with sequence past the ACK)
PktRcvBelated number of received AND IGNORED packets due to having come too late
PktSndDrop number of too-late-to-send dropped packets
PktRcvDrop number of too-late-to play missing packets
PktRcvUndecrypt number of undecrypted packets
ByteSent number of sent data bytes, including retransmissions
ByteRecv number of received bytes
ByteRcvLoss number of retransmitted bytes
ByteRetrans number of retransmitted bytes
ByteSndDrop number of too-late-to-send dropped bytes
ByteRcvDrop number of too-late-to play missing bytes (estimate based on average packet size)
ByteRcvUndecrypt number of undecrypted bytes
UsPktSndPeriod packet sending period, in microseconds
PktFlowWindow flow window size, in number of packets
PktCongestionWindow congestion window size, in number of packets
PktFlightSize number of packets on flight
MsRTT RTT, in milliseconds
MbpsBandwidth estimated bandwidth, in Mb/s
ByteAvailSndBuf available UDT sender buffer size
ByteAvailRcvBuf available UDT receiver buffer size
MbpsMaxBW Transmit Bandwidth ceiling (Mbps)
ByteMSS MTU
PktSndBuf UnACKed packets in UDT sender
ByteSndBuf UnACKed bytes in UDT sender
MsSndBuf UnACKed timespan (msec) of UDT sender
MsSndTsbPdDelay Timestamp-based Packet Delivery Delay
PktRcvBuf Undelivered packets in UDT receiver
ByteRcvBuf Undelivered bytes of UDT receiver
MsRcvBuf Undelivered timespan (msec) of UDT receiver
MsRcvTsbPdDelay Timestamp-based Packet Delivery Delay
PktSndFilterExtraTotal number of control packets supplied by packet filter
PktRcvFilterExtraTotal number of control packets received and not supplied back
PktRcvFilterSupplyTotal number of packets that the filter supplied extra (e.g. FEC rebuilt)
PktRcvFilterLossTotal number of packet loss not coverable by filter
PktSndFilterExtra number of control packets supplied by packet filter
PktRcvFilterExtra number of control packets received and not supplied back
PktRcvFilterSupply number of packets that the filter supplied extra (e.g. FEC rebuilt)
PktRcvFilterLoss number of packet loss not coverable by filter
PktReorderTolerance packet reorder tolerance value

Analytics window

You can see the metrics in the Analytics window.

Srt metrics

SRT charts

To effectively analyze network conditions and identify potential issues using the SRT statistics, user can combine different metrics into graphs. By visualizing these metrics together, you can gain valuable insights into network conditions, packet behavior, and the effectiveness of error recovery mechanisms

RTT and Recommended Latency Graph

This graph illustrates the relationship between Round Trip Time (RTT), latency, and the recommended latency based on the maximum RTT.

  • RTT (ms): The time it takes for a packet to travel from the sender to the receiver and back again. It's a critical measure of network performance.
  • Latency (ms): The time delay in the transmission of data across the network. While lower latency is generally preferable for quick responses, a certain level of higher latency can improve streaming quality by allowing additional time for packet retrieval and retransmission. Finding the right balance is essential to ensure smooth communication and minimize interruptions during video playback.

Key Insights from the Graph:

  • Calculating Recommended Latency:

    • The recommended latency is calculated as Max RTT * 2.5.

    • This formula provides a safety margin to account for variations in network performance.

Packet Loss and Drop Analysis

Show Packet Loss and Drop Over Time. This graph helps in understanding how many packets are being lost or dropped due to network delays or errors, indicating possible congestion or reliability issues.

Metrics: PktRcvDrop (dropped packets) and PktRcvLoss (lost packets)

Retransmissions and Byte Loss Comparison

Retransmissioned Packets and Retransmissioned Bytes Graph

Correlating the number of retransmissions and byte loss over time can indicate if the retransmission mechanism is working effectively or if additional data is being lost.

Metrics: PktRcvRetrans (retransmitted packets), ByteRcvLoss (lost bytes), and ByteRetrans (retransmitted bytes)

Receiving Rate and Estimated Bandwidth

This graph shows the efficiency of the network. If the receiving rate approaches the bandwidth limit, it might indicate network saturation.

Metrics: MbpsRecvRate (receiving rate) and MbpsBandwidth (estimated bandwidth)

RTT and Packet Loss Correlation

Scatter plot can highlight if increasing RTT (network latency) results in a higher packet loss, which could indicate congestion.

Metrics: MsRTT (round-trip time) and PktRcvLoss (packet loss)

Retransmission Efficiency

This helps visualize how many bytes were retransmitted per packet, offering insights into packet sizes or retransmission efficiency.

Metrics: PktRcvRetrans (retransmitted packets) and ByteRetrans (retransmitted bytes)

Mbps Bandwidth and Mbps Send Rate

Mbps Bandwidth vs. Send Rate Graph

This graph provides a visual representation of how efficiently you are using the available network bandwidth in relation to your data send rate. This is crucial for optimizing performance, avoiding network congestion, and ensuring smooth streaming.

  • Bandwidth (Mbps) is the total capacity of the network - essentially, how much data the network can handle at any given time.
  • Send Rate (Mbps) is the actual rate at which data is being transmitted.

Key Insights from the Graph:

  1. Percentage Utilization:

    By comparing Bandwidth and Send Rate - you can easily see what percentage of your available bandwidth is being used.

    A good rule of thumb is to avoid consistently reaching or exceeding 100%, as this can lead to buffering, frame drops, or poor video quality.

  2. Identifying Bottlenecks:

    If the Send Rate is consistently near or at the Bandwidth limit, this indicates that your network is being fully utilized.

    Conversely, if the send rate is significantly lower than the available bandwidth, you’re not utilizing the full potential of the network.