Skip to content

Pushing SRT stream

Flussonic supports pushing SRT streams.

Flussonic acts as an SRT Caller when you push from Flussonic to some third-party server.

To enable pushing, you have to specify a port first. Port for an SRT stream can be global or for a particular stream.

Global port is defined outside the stream settings, whereas stream port — within settings of a particular stream.

Let us have a look at the configuration options.

Push from Flussonic

To enable pushing SRT streams from Flussonic you should set the URL and the streamid according to the format that other servers can process. It is no difference whether you do it over a global or a stream port the URL format will remain the same:

  • srt://SRT-HOST:SRT_PORT streamid="SOME_RANDOM_STRING"

where:

  • SRT-HOST is an IP address of the destination server.

  • SRT_PORT is an SRT port.

  • "SOME_RANDOM_STRING" is a free-form string. Flussonic does not impose any limitations on the streamid format here and allows you to set it the way the other server can process it.

Let's have a look at the example:


stream push_srt {
  url fake://fake;
  push srt://example.com:9998 streamid="#!::r=my-stream-id";
}

In the example above we enabled stream transmission (push) to the example.com server over port 9998.

You can also manage SRT push by passing some parameters to the URL settings.

Parameters for SRT push

Here is a list of URL parameters to manage the SRT push:

Parameters Unit Description Example
streamid string A string set on the socket before the connection. The maximum length equals 512 characters. Default value is an empty string ("") streamid=SOME_RANDOM_STRING"
minversion 0xXXYYZZ or x.y.z The minimum SRT version required from the peer. minversion=1.1.0.
version 0xXXYYZZ or x.y.z Required SRT version. version=1.3.0.
enforcedencryption boolean If set to true, both connection parties must have the same password set (including empty, in other words, with no encryption). If the password does not match or only one side is unencrypted, the connection is rejected. Set to true by default. enforcedencryption=false
passphrase string Password for the encrypted transmission. Its length should be not less than 10 and not more than 79 characters. Default value is an empty string ("") passphrase=9876543210
timeout seconds If set to -1 then data transmission time is unlimited. Default behavior. timeout=1
linger seconds The time socket waits for the unsent data when closing. Set to 180 by default. linger=1
connect_timeout seconds Connection timeout. Equals to 0 by default. connect_timeout=2
latency milliseconds Packet delivery delay. Used to absorb bursts of missed packet retransmissions. The default value is120. latency=100

Example:


stream srt_push {
  url fake://fake;
  push srt://example.com:9998 passphrase=1234567890 streamid="#!::r=some_random_name"; 
}