TS over SRT
Real time streaming of TS data over SRT
Pushing/Recording
The following push targets are matched by this output:
srt://*
TSSRT Optional configurations
Option | Description | Type | Default | API | Commandline |
---|---|---|---|---|---|
Acceptable connection types | Whether to allow only incoming pushes (2), only outgoing pulls (1), or both (0, default) | 0 = Allow both incoming and outgoing connections 1 = Allow only outgoing connections 2 = Allow only incoming connections | 0 | acceptable | --acceptable |
MPEG Data track parser | Which parser to use for data tracks | = None / disabled json = 2b size-prepended JSON | datatrack | --datatrack | |
debug | The debug level at which messages need to be printed. | debug | Inherited from parent process | debug | --debug |
Default track sorting | What tracks are selected first when no specific track selector is used for playback. | = Default (last added for live, first added for VoD) bps_lth = Bit rate, low to high bps_htl = Bit rate, high to low id_lth = Track ID, low to high id_htl = Track ID, high to low res_lth = Resolution, low to high res_htl = Resolution, high to low | default_track_sorting | --default_track_sorting | |
Open file descriptor limit | Increase open file descriptor to this value if current system value is lower. A higher value may be needed for handling many concurrent SRT connections. | Number (signed integer) | 1024 | filelimit | --filelimit |
Interface | Address of the interface to listen on | String | 0.0.0.0 | interface | --interface |
TCP port | TCP port to listen on | Number (unsigned integer) | 8889 | port | --port |
Stream | What streamname to serve if no streamid is given by the other end of the connection | String | streamname | --stream | |
Username | Username to drop privileges to - default if unprovided means do not drop privileges | String | root | username | --username |
TSSRT Push parameters
Option | Description | Type | Default | API | Commandline |
---|---|---|---|---|---|
Append to file | If set to any value, will (if possible) append to an existing file, rather than overwriting it | Boolean | Unset | append | undefined |
Audio track(s) | Override which audio tracks of the stream should be selected | string | Unset | audio | undefined |
Congestion controller | May be set to 'live' or 'file' | String | live | congestion | undefined |
Connect timeout | Milliseconds to wait before timing out a connection attempt for caller and rendezvous modes. | Number (signed integer) | 3000 | conntimeo | undefined |
Duration of push | How much media time to push, in seconds. Internally overrides "recstop" | Number (signed integer) | Unset | duration | undefined |
Enforced Encryption | If enabled, enforces that both sides either set no passphrase, or set the same passphrase. When disabled, falls back to no passphrase if the passphrases do not match. | 0 = False 1 = True | 1 | enforcedencryption | undefined |
Flight Flag Size | Maximum packets that may be 'in flight' without being acknowledged. | Number (signed integer) | 25600 | fc | undefined |
Input bandwidth | Estimated bandwidth of data to be sent. Default of 0 means automatic. | Number (signed integer) | 0 | inputbw | undefined |
Type of Service | TOS for IPv4 connections or Traffic Class for IPv6 connections. Defaults to system default. | Number (signed integer) | 0 | iptos | undefined |
TTL | Time To Live for IPv4 connections or unicast hops for IPv6 connections. Defaults to system default. | Number (signed integer) | 0 | ipttl | undefined |
Latency | Socket latency, in milliseconds. | Number (signed integer) | 120 | latency | undefined |
Linger closed sockets | Whether to keep closed sockets around for 180 seconds of linger time or not. | 0 = False 1 = True | 1 | linger | undefined |
Reorder Tolerance | Maximum amount of packets that may be out of order, or 0 to disable this mechanism. | Number (signed integer) | 0 | lossmaxttl | undefined |
Playlist path (relative to segments) | If set, will write a m3u8 playlist file for the segments to the given path (relative from the first segment path). When this parameter is used, at least one of the variables $segmentCounter or $currentMediaTime must be part of the segment path (to keep segments from overwriting each other). The "Split interval" parameter will default to 60 seconds when using this option. | string | Unset | m3u8 | undefined |
Playlist max entries | When writing a playlist, delete oldest segment entries once this entry count has been reached (and, if possible, also delete said segments themselves). When set to 0 or left empty, does not delete. | Number (signed integer) | Unset | maxEntries | undefined |
Maximum send bandwidth | Maximum send bandwidth in bytes per second, -1 for infinite, 0 for relative to input bandwidth. | Number (signed integer) | -1 | maxbw | undefined |
Max buffer duration for GOP count wait | When waiting for GOPs on the main track, give up when this much data is available in the main track buffer | Number (signed integer) | 5s, or 120s when using a non-default GOP count | maxwaittrackms | undefined |
Message API | When true, uses the default Message API. When false, uses the Stream API | 0 = False 1 = True | 1 | messageapi | undefined |
Minimum SRT version | Minimum SRT version to require the other side of the connection to support. | Number (signed integer) | 0 | minversion | undefined |
Mode | The connection mode. Can be listener, caller, or rendezvous. By default is listener if the host is missing from the URL, and is caller otherwise. | default = Default listener = Listener caller = Caller rendezvous = Rendezvous | Unset | mode | undefined |
Maximum Segment Size | Maximum size for packets including all headers, in bytes. The default of 1500 is generally the maximum value you can use in most networks. | Number (signed integer) | 1500 | mss | undefined |
Repeat loss reports | When enabled, repeats loss reports every time the retransmission timeout has expired. | 0 = False 1 = True | 1 | nakreport | undefined |
Recovery Bandwidth Overhead | Percentage of bandwidth to use for recovery. | Number (signed integer) | 25 | oheadbw | undefined |
Packet Filter | Sets the SRT packet filter string, see SRT library documentation for details. | String | packetfilter | undefined | |
Encryption passphrase | Enables encryption with the given passphrase. | String | passphrase | undefined | |
Encryption key length | May be 0 (auto), 16 (AES-128), 24 (AES-192) or 32 (AES-256). | Number (signed integer) | 0 | pbkeylen | undefined |
Peer Idle Timeout | Time to wait, in milliseconds, before the connection is considered broken if the peer does not respond. | Number (signed integer) | 5000 | peeridletimeo | undefined |
Push delay | Ensures the stream is always delayed by at least this many seconds. Internally overrides the "realtime" and "start" parameters | Number (signed integer) | Unset | pushdelay | undefined |
Playback rate | Multiplier for the playback speed rate, or 0 to not limit | Number (signed integer) | 1 | rate | undefined |
Receive Buffer Size | Size of the receive buffer, in bytes | Number (signed integer) | 0 | rcvbuf | undefined |
Don't speed up output | If set to any value, removes the rate override to unlimited normally applied to push outputs | Boolean | Unset | realtime | undefined |
Media timestamp to start from | What internal media timestamp to start from | Number (signed integer) | Unset | recstart | undefined |
Unix timestamp to start from | What unix timestamp to start from | unixtime | Unset | recstartunix | undefined |
Media timestamp to stop at | What internal media timestamp to stop at | Number (signed integer) | Unset | recstop | undefined |
Unix timestamp to stop at | What unix timestamp to stop at | unixtime | Unset | recstopunix | undefined |
Send Buffer Size | Size of the send buffer, in bytes | Number (signed integer) | 0 | sndbuf | undefined |
Send Drop Delay | Extra delay before Too-late packet drop on sender side is triggered, in milliseconds. | Number (signed integer) | 0 | snddropdelay | undefined |
Split interval | Performs a gapless restart of the recording every this many seconds. Always aligns to the next keyframe after this duration, to ensure each recording is fully playable. When set to zero (the default) will not split at all. | Number (signed integer) | Unset | split | undefined |
Media timestamp to start from | What internal media timestamp to start from | Number (signed integer) | Unset | start | undefined |
Unix timestamp to start from | What unix timestamp to start from | unixtime | Unset | startunix | undefined |
Media timestamp to stop at | What internal media timestamp to stop at | Number (signed integer) | Unset | stop | undefined |
Unix timestamp to stop at | What unix timestamp to stop at | unixtime | Unset | stopunix | undefined |
Stream ID | Stream ID to transmit to the other side. MistServer uses this field for the stream name, but the field is entirely free-form and may contain anything. | String | streamid | undefined | |
Subtitle track(s) | Override which subtitle tracks of the stream should be selected | string | Unset | subtitle | undefined |
Playlist target age | When writing a playlist, delete segment entries that are more than this many seconds old from the playlist (and, if possible, also delete said segments themselves). When set to 0 or left empty, does not delete. | Number (signed integer) | Unset | targetAge | undefined |
Too-late Packet Drop | Skips packets that cannot (sending) or have not (receiving) been delivered in time | 0 = False 1 = True | 1 | tlpktdrop | undefined |
Transmission type | This should be set to live (the default) unless you know what you're doing. | = Live file = File | Unset | transtype | undefined |
Timestamp-based Packet Delivery mode | In this mode the packet's time is assigned at the sending time (or allowed to be predefined), transmitted in the packet's header, and then restored on the receiver side so that the time intervals between consecutive packets are preserved when delivering to the application. | 0 = False 1 = True | 1 | tsbpd | undefined |
Unmask tracks | If set to any value, removes any applied track masking before selecting tracks, acting as if no mask was applied at all | Boolean | Unset | unmask | undefined |
Video track(s) | Override which video tracks of the stream should be selected | string | Unset | video | undefined |
Wait for GOP count | Before starting, wait until this number of GOPs is available in the main selected track | Number (signed integer) | 2 | waittrackcount | undefined |