Skip to main content

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

OptionDescriptionTypeDefaultAPICommandline
Acceptable connection typesWhether 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
0acceptable--acceptable
MPEG Data track parserWhich parser to use for data tracks = None / disabled
json = 2b size-prepended JSON
datatrack--datatrack
debugThe debug level at which messages need to be printed.debugInherited from parent processdebug--debug
Default track sortingWhat 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 limitIncrease 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)1024filelimit--filelimit
InterfaceAddress of the interface to listen onString0.0.0.0interface--interface
TCP portTCP port to listen onNumber (unsigned integer)8889port--port
StreamWhat streamname to serve if no streamid is given by the other end of the connectionStringstreamname--stream
UsernameUsername to drop privileges to - default if unprovided means do not drop privilegesStringrootusername--username

TSSRT Push parameters

OptionDescriptionTypeDefaultAPICommandline
Append to fileIf set to any value, will (if possible) append to an existing file, rather than overwriting itBooleanUnsetappendundefined
Audio track(s)Override which audio tracks of the stream should be selectedstringUnsetaudioundefined
Congestion controllerMay be set to 'live' or 'file'Stringlivecongestionundefined
Connect timeoutMilliseconds to wait before timing out a connection attempt for caller and rendezvous modes.Number (signed integer)3000conntimeoundefined
Duration of pushHow much media time to push, in seconds. Internally overrides "recstop"Number (signed integer)Unsetdurationundefined
Enforced EncryptionIf 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
1enforcedencryptionundefined
Flight Flag SizeMaximum packets that may be 'in flight' without being acknowledged.Number (signed integer)25600fcundefined
Input bandwidthEstimated bandwidth of data to be sent. Default of 0 means automatic.Number (signed integer)0inputbwundefined
Type of ServiceTOS for IPv4 connections or Traffic Class for IPv6 connections. Defaults to system default.Number (signed integer)0iptosundefined
TTLTime To Live for IPv4 connections or unicast hops for IPv6 connections. Defaults to system default.Number (signed integer)0ipttlundefined
LatencySocket latency, in milliseconds.Number (signed integer)120latencyundefined
Linger closed socketsWhether to keep closed sockets around for 180 seconds of linger time or not.0 = False
1 = True
1lingerundefined
Reorder ToleranceMaximum amount of packets that may be out of order, or 0 to disable this mechanism.Number (signed integer)0lossmaxttlundefined
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.stringUnsetm3u8undefined
Playlist max entriesWhen 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)UnsetmaxEntriesundefined
Maximum send bandwidthMaximum send bandwidth in bytes per second, -1 for infinite, 0 for relative to input bandwidth.Number (signed integer)-1maxbwundefined
Max buffer duration for GOP count waitWhen waiting for GOPs on the main track, give up when this much data is available in the main track bufferNumber (signed integer)5s, or 120s when using a non-default GOP countmaxwaittrackmsundefined
Message APIWhen true, uses the default Message API. When false, uses the Stream API0 = False
1 = True
1messageapiundefined
Minimum SRT versionMinimum SRT version to require the other side of the connection to support.Number (signed integer)0minversionundefined
ModeThe 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
Unsetmodeundefined
Maximum Segment SizeMaximum 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)1500mssundefined
Repeat loss reportsWhen enabled, repeats loss reports every time the retransmission timeout has expired.0 = False
1 = True
1nakreportundefined
Recovery Bandwidth OverheadPercentage of bandwidth to use for recovery.Number (signed integer)25oheadbwundefined
Packet FilterSets the SRT packet filter string, see SRT library documentation for details.Stringpacketfilterundefined
Encryption passphraseEnables encryption with the given passphrase.Stringpassphraseundefined
Encryption key lengthMay be 0 (auto), 16 (AES-128), 24 (AES-192) or 32 (AES-256).Number (signed integer)0pbkeylenundefined
Peer Idle TimeoutTime to wait, in milliseconds, before the connection is considered broken if the peer does not respond.Number (signed integer)5000peeridletimeoundefined
Push delayEnsures the stream is always delayed by at least this many seconds. Internally overrides the "realtime" and "start" parametersNumber (signed integer)Unsetpushdelayundefined
Playback rateMultiplier for the playback speed rate, or 0 to not limitNumber (signed integer)1rateundefined
Receive Buffer SizeSize of the receive buffer, in bytesNumber (signed integer)0rcvbufundefined
Don't speed up outputIf set to any value, removes the rate override to unlimited normally applied to push outputsBooleanUnsetrealtimeundefined
Media timestamp to start fromWhat internal media timestamp to start fromNumber (signed integer)Unsetrecstartundefined
Unix timestamp to start fromWhat unix timestamp to start fromunixtimeUnsetrecstartunixundefined
Media timestamp to stop atWhat internal media timestamp to stop atNumber (signed integer)Unsetrecstopundefined
Unix timestamp to stop atWhat unix timestamp to stop atunixtimeUnsetrecstopunixundefined
Send Buffer SizeSize of the send buffer, in bytesNumber (signed integer)0sndbufundefined
Send Drop DelayExtra delay before Too-late packet drop on sender side is triggered, in milliseconds.Number (signed integer)0snddropdelayundefined
Split intervalPerforms 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)Unsetsplitundefined
Media timestamp to start fromWhat internal media timestamp to start fromNumber (signed integer)Unsetstartundefined
Unix timestamp to start fromWhat unix timestamp to start fromunixtimeUnsetstartunixundefined
Media timestamp to stop atWhat internal media timestamp to stop atNumber (signed integer)Unsetstopundefined
Unix timestamp to stop atWhat unix timestamp to stop atunixtimeUnsetstopunixundefined
Stream IDStream 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.Stringstreamidundefined
Subtitle track(s)Override which subtitle tracks of the stream should be selectedstringUnsetsubtitleundefined
Playlist target ageWhen 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)UnsettargetAgeundefined
Too-late Packet DropSkips packets that cannot (sending) or have not (receiving) been delivered in time0 = False
1 = True
1tlpktdropundefined
Transmission typeThis should be set to live (the default) unless you know what you're doing. = Live
file = File
Unsettranstypeundefined
Timestamp-based Packet Delivery modeIn 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
1tsbpdundefined
Unmask tracksIf set to any value, removes any applied track masking before selecting tracks, acting as if no mask was applied at allBooleanUnsetunmaskundefined
Video track(s)Override which video tracks of the stream should be selectedstringUnsetvideoundefined
Wait for GOP countBefore starting, wait until this number of GOPs is available in the main selected trackNumber (signed integer)2waittrackcountundefined