Skip to main content

DTSC

Real time streaming over DTSC (proprietary protocol for efficient inter-server streaming)

Pushing DTSC into MistServer

MethodURL
DTSCdtsc://HOST:PORT/STREAMNAME?pass=PASSWORD

Pushing/Recording

The following push targets are matched by this output:
dtsc://*

DTSC Optional configurations

OptionDescriptionTypeDefaultAPICommandline
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
InterfaceAddress of the interface to listen onString0.0.0.0interface--interface
TCP portTCP port to listen onNumber (unsigned integer)4200port--port
UsernameUsername to drop privileges to - default if unprovided means do not drop privilegesStringrootusername--username

DTSC 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
Duration of pushHow much media time to push, in seconds. Internally overrides "recstop"Number (signed integer)Unsetdurationundefined
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
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
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
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
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
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
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