IPTV Live Video Encoding & Streaming SRT

Secure Reliable Transport (SRT) is an open source video transport protocol developed originally by Haivision. It works on UDP but provides reliable transmission similar to TCP, by utilising similar methods for connection, sequence numbers, acknowledgements and re-transmission of lost packets. SRT makes it possible to send MPEG transport streams over the public internet.
Stream from SRT Source
Streaming from SRT source is like streaming from HTTP. Just choose
srt as source type and enter srt url in source address, like
srt://192.168.1.2:1234
Note: SRT source works in caller mode by default. i.e. It
initiates connection to the source server to start streaming. If you want to
switch to listener mode instead, change address to a local host address, for
example srt://0.0.0.0:1234
. And set SRT mode in advanced config
below. In this case, it waits until the remote peer connects and starts
streaming then.
Stream P2P SRT Output
Choose SRT in Target Format and enter destination IP address
you want to deliver to. For example srt://0.0.0.0:1234
.
Note: SRT output works in listener mode by default.
i.e. It waits for remote peer to connect to start streaming. If you want to
switch to caller mode instead, change address to a remote host address
like srt://192.168.1.2:1234
, and set SRT mode in advanced config
below. In this case, it initiates connection to remote and starts streaming.
SRT Path Redundancy
IPVTL has implemented SRT connection bonding feature. By utilizing two or more network interfaces, it is possible to stream with network path redundancy like Haivision SRT Gateway. Click image below to see details.

To enable Connection Bonding, make sure you have at least two internet connections, i.e. at least two network interfaces configured on the host computer. Open Advanced format settings and go to SRT Config tab to set up SRT connection bonding.
For SRT listener mode, Connection Bonding is enabled by default and nothing else is required.
For SRT caller mode, it is possible to set a 2nd remote IP address in Connection #2, as the backup route to peer SRT server in Connection #1. For either connection, a local network interface may be specified optionally. You can set up bonded connections with two different remote addresses, or one remote address but two different local addresses. By either method, two separated streaming paths will be established.

Note bonded connections share same port number so it is omitted in address box here. Bonding type is default to Main/Backup (or Active-Standby). That means only 1 link is used for streaming at the same time. For advanced users, Broadcast (Active-Active) is also supported. In that case, both links are streaming simultaneously. So network traffic is doubled.
There is an advanced option Minimum Stable Timeout that decides how one SRT connection is considered unstable and should be switched to another. Don't touch it unless you fully understand what it does.
IMPORTANT: Usually on PC with 2 network interfaces enabled, 1 of them is chosen as the default gateway in route table like below.
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 1.2.3.4 0.0.0.0 UG 200 0 0 eth1 0.0.0.0 4.3.2.1 0.0.0.0 UG 300 0 0 eth2
In above case, both SRT main and backup stream goes through eth1 (decided by Metric) and fails connection bonding. To make SRT backup connection work, it is important to set up load balance to make it go through eth2 instead, which can be done by adding a custom network route.
To add custom route in Linux console for example (where x.x.x.x refers to the peer address of SRT backup endpoint, and eth2 is local backup network interface):
# route add -host x.x.x.x gw 4.3.2.1 dev eth2
Make sure the route added successfully in system route table:
Destination Gateway Genmask Flags Metric Ref Use Iface x.x.x.x 4.3.2.1 255.255.255.255 UGH 0 0 0 eth2
Note the above command works temporarily and doesn't make effect after system reboot. Make a network start script like netplan to get run automatically.
To add custom route in Windows console for example (where x.x.x.x refers to the peer address of SRT backup endpoint, and 2 is local backup network interface id):
route -p add x.x.x.x mask 255.255.255.255 4.3.2.1 if 2
Note option "-p" makes the route persistent even after system reboot.