Skip to content

0.2.0

Latest

Choose a tag to compare

@kt81 kt81 released this 10 Jul 09:54

Stream ids and encryption on the managed API

The two options an SRT ingest server actually needs, mapped from their RTMP counterparts:

  • SRTClient.StreamId — the sender's streamid (srt://host:port?streamid=...), the SRT counterpart of an RTMP stream key. Use it to route streams and authorize publishes.
  • SRTListenerOptions.Passphrase — pre-shared passphrase encryption (SRTO_PASSPHRASE, 10–79 bytes). Senders presenting a different passphrase are rejected during the handshake; payloads are AES-encrypted on the wire (mbedTLS backend, PBKDF2 key derivation). Accepted connections inherit the listener's passphrase.
var listener = new SRTListener(endpoint, new SRTListenerOptions
{
    Passphrase = "correct horse battery staple",
});
listener.Start();
var client = await listener.AcceptSRTClientAsync(ct);
// e.g. "live/abc" from srt://host:9998?streamid=live/abc
Console.WriteLine(client.StreamId);

Both paths are covered by tool-free native loopback tests (streamid round-trip; wrong-passphrase rejection + decrypted payload integrity) on every RID lane.

Client-side connect remains unexposed: open an issue if you need it and it will be prioritized immediately.