Skip to content

SRT ingest

Sapsan ingests an SRT stream by listening on a dedicated UDP port (listener mode). Each stream gets its own port.

Configuration

streams:
  event:
    inputs:
    - srt:
        host: 0.0.0.0
        port: 9000
        passphrase: verysecretpass
Parameter Description
host, port address and UDP port to wait for the SRT connection on
passphrase encryption key (AES); a mismatching key gets the connection rejected
stream_id expected client streamid; the Flussonic-style #!::r=<name> form is passed through verbatim
handshake_timeout_ms, peer_timeout_ms handshake and inactivity timeouts

You can send a stream to Sapsan like this:

ffmpeg -re -i input.mp4 -c copy -f mpegts \
  "srt://server:9000?passphrase=verysecretpass"

Delivery reliability

The full SRT ARQ machinery is implemented: acknowledgements (ACK/ACKACK), retransmission requests for lost packets (NAK), a latency buffer with in-order delivery, too-late packet drop, and keepalives for idle connections. The NAK period follows the measured RTT.

Applying changes

Changing the address, port, passphrase, or stream_id restarts the source; changing only the timeouts applies in place.

Counters

Per connection: received packets and bytes, RTT and its variance, lost and retransmitted packets in both directions, buffer sizes, keepalive timeouts. See the Admin API.

Next steps